FailedChanges

Summary

  1. [CMake] Avoid internal dependencies in the runtimes build When performing runtimes build, dependencies like clang and clang-headers aren't available. This was accidentally omitted in D57992.
  2. [libFuzzer] make the fork mode less verbose
  3. [build] Remove a stray comment. NFC The CMake change associated with this comment was removed but the comment got left behind. Add a newline instead.
  4. [libFuzzer] teach the fork mode to ignore OOMs and timeouts
  5. Fix VS2015 build problem introduced by r353370.
  6. [CMake] Don't override required compiler flags in the runtimes build Ensure that HandleLLVMOptions adds all necessary required flags, including -Wno-error when building with LLVM_ENABLE_WERROR enabled. Differential Revision: https://reviews.llvm.org/D58092
  7. [x86] add tests for logic of setcc (PR40611); NFC
  8. [PowerPC] add tests for logic of setcc (PR40611); NFC
  9. [sanitizer] Don't compile GetPathAssumingFileIsRelativeToExec on Fuchsia This avoids the unused function warning during compilation. Differential Revision: https://reviews.llvm.org/D58082
  10. [CMake] Avoid passing -rtlib=compiler-rt when using compiler-rt We build libc++ and libc++abi with -nodefaultlibs, so -rtlib=compiler-rt has no effect and results in an 'argument unused during compilation' warning which breaks the build when using -Werror. We can therefore drop -rtlib=compiler-rt without any functional change; note that the actual compiler-rt linking is handled by HandleCompilerRT. Differential Revision: https://reviews.llvm.org/D58084
  11. Fix r353771 to target linux only (split-dwarf isn't supported on macho)
  12. [CMake][XRay] Silence llvm-config error when checking library support Otherwise this propagates all the way to CMake and results in an error during configuration. We check and handle the result and report warning separately so this is not changing the behavior. Differential Revision: https://reviews.llvm.org/D58086
  13. [libFuzzer] replace slow std::mt19937 with a much faster std::minstd_rand; second attempt after failed r352732, this time with a fix for cmake
  14. [libFuzzer] simplify the code for print_coverage=1 so that it doesn't fail on broken debug info
  15. [libFuzzer] Make coverage.test work on ARM64 Summary: This test instruments the following code with coverage, runs the fuzzer once, and asserts that there are uncovered PCs. The ARM64 backend optimizes this code using the `csel` (Conditional select) instruction, which removes all branching from the resulting machine code. The test then fails because we do not have any uncovered PCs. The easiest solution for now is to turn off optimization for the DSOs used in this test. ``` int DSO1(int a) { if (a < 123456) return 0; return 1; } ``` rdar://47646400 Reviewers: kcc Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D58087
  16. [LoopReroll] Fix reroll root legality checking. The code checked that the first root was an appropriate distance from the base value, but skipped checking the other roots. This could lead to rerolling a loop that can't be legally rerolled (at least, not without rewriting the loop in a non-trivial way). Differential Revision: https://reviews.llvm.org/D56812
  17. [libFuzzer] run the -fork=1 tests only on linux
  18. [Test] Use autogenerated checks for more statepoint tests
  19. [libFuzzer] extend the -fork=1 functionality. Still not fully usable, but good enough for the first unit test
  20. Don't declare fenv.h functions when they're a macro. libc still provides function declarations, and these declarations conflict with libc++'s
  21. [Tests] Fill out a few tests around gc relocation uniquing
  22. Make the sym_diff utilities more useful. In particular when working with static libraries and libstdc++.
  23. DebugInfo: Split DWARF + gmlt + no-split-dwarf-inlining shouldn't emit anything to the .dwo file This configuration (due to r349207) was intended not to emit any DWO CU, but a degenerate CU was still being emitted - containing a header and a DW_TAG_compile_unit with no attributes. Under that situation, emit nothing to the .dwo file. (since this is a dynamic property of the input the .dwo file is still emitted, just with nothing in it (so a valid, but empty, ELF file) - if some other CU didn't satisfy this criteria, its DWO CU would still go there, etc)
  24. [Test] Autogenerate a statepoint test and actual show the reload
  25. Add fenv.h header Summary: Some implementations of fenv.h use macros to define the functions they provide. This can cause problems when `std::fegetround()` is spelled in source. This patch adds a `fenv.h` header to libc++ for the sole purpose of turning those macros into real functions. Reviewers: rsmith, mclow.lists, ldionne Reviewed By: rsmith Subscribers: mgorny, christof, libcxx-commits Differential Revision: https://reviews.llvm.org/D57729
  26. Be conservative about unordered accesses for the moment Background: As described in https://reviews.llvm.org/D57601, I'm working towards separating volatile and atomic in the MMO uses for atomic instructions. In https://reviews.llvm.org/D57593, I fixed a bug where isUnordered was returning the wrong result, but didn't account for the fact I was getting slightly ahead of myself. While both uses of isUnordered are correct (as far as I can tell), we don't have tests to demonstrate this and being aggressive gets in the way of having the removal of volatile truly be non-functional. Once D57601 lands, I will return to these call sites, revert this patch, and add the appropriate tests to show the expected behaviour. Differential Revision: https://reviews.llvm.org/D57802
  27. Add a new attribute, fortify_stdlib This attribute applies to declarations of C stdlib functions (sprintf, memcpy...) that have known fortified variants (__sprintf_chk, __memcpy_chk, ...). When applied, clang will emit calls to the fortified variant functions instead of calls to the defaults. In GCC, this is done by adding gnu_inline-style wrapper functions, but that doesn't work for us for variadic functions because we don't support __builtin_va_arg_pack (and have no intention to). This attribute takes two arguments, the first is 'type' argument passed through to __builtin_object_size, and the second is a flag argument that gets passed through to the variadic checking variants. rdar://47905754 Differential revision: https://reviews.llvm.org/D57918
  28. [tblgen] Add a timer covering the time spent reading the Instruction defs This patch adds a -time-regions option to tablegen that can enable timers (currently only one) that assess the performance of tablegen itself. This can be useful for identifying scaling problems with tablegen backends. This particular timer has allowed me to ignore time that is not attributed the GISel combiner pass. It's useful by itself but it is particularly useful in combination with https://reviews.llvm.org/D52954 which causes this period of time to be annotated within Xcode Instruments which in turn allows profile samples and recorded allocations attributed to reading instructions to be filtered out.
  29. [Sema] Mark GNU compound literal array init as an rvalue. Basically the same issue as string init, except it didn't really have any visible consequences before I removed the implicit lvalue-to-rvalue conversion from CodeGen. While I'm here, a couple minor drive-by cleanups: IgnoreParens never returns a ConstantExpr, and there was a potential crash with string init involving a ChooseExpr. The analyzer test change maybe indicates we could simplify the analyzer code a little with this fix? Apparently a hack was added to support lvalues in initializers in r315750, but I'm not really familiar with the relevant code. Fixes regression reported in the kernel build at https://bugs.llvm.org/show_bug.cgi?id=40430#c6 . Differential Revision: https://reviews.llvm.org/D58069
  30. [WebAssembly] Make thread-related options consistent Summary: There have been three options related to threads and users had to set all three of them separately to get the correct compilation results. This makes sure the relationship between the options makes sense and sets necessary options for users if only part of the necessary options are specified. This does: - Remove `-matomics`; this option alone does not enable anything, so removed it to not confuse users. - `-mthread-model posix` sets `-target-feature +atomics` - `-pthread` sets both `-target-feature +atomics` and `-mthread-model posix` Also errors out when explicitly given options don't match, such as `-pthread` is given with `-mthread-model single`. Reviewers: dschuff, sbc100, tlively, sunfish Subscribers: jgravelle-google, jfb, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D57874
  31. [NFC][clangd] Remove unused lambda capture Avoid this warning: llvm/clang-tools-extra/clangd/ClangdServer.cpp:365:23: warning: lambda capture 'this' is not used [-Wunused-lambda-capture] auto Action = [Sel, this](decltype(CB) CB, std::string File, ~~^~~~ 1 warning generated.
  32. GlobalISel: Verify G_EXTRACT
  33. [TargetLibraryInfo] Update run time support for Windows It seems that, since VC19, the `float` C99 math functions are supported for all targets, unlike the C89 ones. According to the discussion at https://reviews.llvm.org/D57625.
  34. [LegalizeTypes] Expand FNEG to bitwise op for IEEE FP types Summary: Except for custom floating point types x86_fp80 and ppc_fp128, expand Y = FNEG(X) to Y = X ^ sign mask to avoid library call. Using bitwise operation can improve code size and performance. Reviewers: efriedma Reviewed By: efriedma Subscribers: efriedma, kpn, arsenm, eli.friedman, javed.absar, rbar, johnrusso, simoncook, sabuasal, niosHD, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, asb, llvm-commits Differential Revision: https://reviews.llvm.org/D57875
  35. [IRReader] Expose getLazyIRModule Currently there is no way to lazy-load an in-memory IR module without first writing it to disk. This patch just exposes the existing implementation of getLazyIRModule. This is effectively a revert of rL212364 Differential Revision: https://reviews.llvm.org/D56203
  36. GlobalISel: Implement moreElementsVector for implicit_def
  37. GlobalISel: Fix not calling the observer when legalizing G_EXTRACT
  38. [globalisel] Correct string emitted by GISelChangeObserver::erasingInstr() The API indicates that the MI is about to be erased rather than it has been erased.
  39. [X86] Correct the memory operand for the FLD emitted in FP_TO_INTHelper for 32-bit SSE targets. We were using DstTy, but that represents the integer type we are converting to which is i64 in this case. The FLD is part of an intermediate step to get from the SSE registers to the x87 registers. If the floating point type is f32, the memory operand should reflect a 4 byte access not an 8 byte access. The store we used to get from SSE to the stack is using the corect size. While there, consistenly use TheVT in place of Op.getOperand(0).getValueType() throughout the function.
  40. Fix a few tests that were missing ':' on CHECK lines and weren't testing anything. Found by `git grep '\/\/ CHECK-[^: ]* ' clang/test/ | grep -v RUN:`. Also tweak CodeGenCXX/arm-swiftcall.cpp to still pass now that it checks more. Differential Revision: https://reviews.llvm.org/D58061
  41. [llvm-cxxfilt] Split and demangle stdin input Summary: Originally, llvm-cxxfilt would treat a line as a single mangled item to be demangled. If a mangled name appears in the middle of that string, that name would not be demangled. GNU c++filt splits and demangles every word in a string that is piped to it via stdin. Prior to this patch llvm-cxxfilt would never split strings piped to it. This patch replicates the GNU behavior and splits strings that are piped to it via stdin. This fixes PR39990 Reviewers: compnerd, jhenderson, davide Reviewed By: compnerd, jhenderson Subscribers: erik.pilkington, jhenderson, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57350
  42. [CodeGen] Set construction vtable visibility after creating initializer We must only set the construction vtable visibility after we create the vtable initializer, otherwise the global value will be treated as declaration rather than definition and the visibility won't be set. Differential Revision: https://reviews.llvm.org/D58010
  43. [globalisel] Restore comment explaining the nits of GISelChangeObserver::createdInstr()
Revision 353796 by phosek:
[CMake] Avoid internal dependencies in the runtimes build

When performing runtimes build, dependencies like clang and
clang-headers aren't available. This was accidentally omitted in D57992.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/CMakeLists.txt (diff)compiler-rt.src/test/CMakeLists.txt
Revision 353794 by kcc:
[libFuzzer] make the fork mode less verbose
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerDriver.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerDriver.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerIO.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerIO.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerIO.h (diff)compiler-rt.src/lib/fuzzer/FuzzerIO.h
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerMerge.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerMerge.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerMerge.h (diff)compiler-rt.src/lib/fuzzer/FuzzerMerge.h
Revision 353793 by smeenai:
[build] Remove a stray comment. NFC

The CMake change associated with this comment was removed but the
comment got left behind. Add a newline instead.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/runtimes/CMakeLists.txt (diff)llvm.src/runtimes/CMakeLists.txt
Revision 353792 by kcc:
[libFuzzer] teach the fork mode to ignore OOMs and timeouts
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerDriver.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerDriver.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerFlags.def (diff)compiler-rt.src/lib/fuzzer/FuzzerFlags.def
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerMerge.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerMerge.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerOptions.h (diff)compiler-rt.src/lib/fuzzer/FuzzerOptions.h
The file was added/compiler-rt/trunk/test/fuzzer/ShallowOOMDeepCrash.cppcompiler-rt.src/test/fuzzer/ShallowOOMDeepCrash.cpp
The file was modified/compiler-rt/trunk/test/fuzzer/fork.test (diff)compiler-rt.src/test/fuzzer/fork.test
The file was modified/compiler-rt/trunk/test/fuzzer/merge.test (diff)compiler-rt.src/test/fuzzer/merge.test
Revision 353791 by dyung:
Fix VS2015 build problem introduced by r353370.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h (diff)clang.src/include/clang/StaticAnalyzer/Core/PathSensitive/SMTConstraintManager.h
Revision 353790 by phosek:
[CMake] Don't override required compiler flags in the runtimes build

Ensure that HandleLLVMOptions adds all necessary required flags,
including -Wno-error when building with LLVM_ENABLE_WERROR enabled.

Differential Revision: https://reviews.llvm.org/D58092
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/runtimes/CMakeLists.txt (diff)llvm.src/runtimes/CMakeLists.txt
Revision 353789 by spatel:
[x86] add tests for logic of setcc (PR40611); NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/setcc-logic.ll (diff)llvm.src/test/CodeGen/X86/setcc-logic.ll
Revision 353788 by spatel:
[PowerPC] add tests for logic of setcc (PR40611); NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/PowerPC/setcc-logic.ll (diff)llvm.src/test/CodeGen/PowerPC/setcc-logic.ll
Revision 353787 by phosek:
[sanitizer] Don't compile GetPathAssumingFileIsRelativeToExec on Fuchsia

This avoids the unused function warning during compilation.

Differential Revision: https://reviews.llvm.org/D58082
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/sanitizer_common/sanitizer_suppressions.cc (diff)compiler-rt.src/lib/sanitizer_common/sanitizer_suppressions.cc
Revision 353786 by phosek:
[CMake] Avoid passing -rtlib=compiler-rt when using compiler-rt

We build libc++ and libc++abi with -nodefaultlibs, so -rtlib=compiler-rt
has no effect and results in an 'argument unused during compilation'
warning which breaks the build when using -Werror. We can therefore drop
-rtlib=compiler-rt without any functional change; note that the actual
compiler-rt linking is handled by HandleCompilerRT.

Differential Revision: https://reviews.llvm.org/D58084
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/CMakeLists.txt (diff)libcxx.src/CMakeLists.txt
The file was modified/libcxxabi/trunk/CMakeLists.txt (diff)N/A
Revision 353785 by dblaikie:
Fix r353771 to target linux only (split-dwarf isn't supported on macho)
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/DebugInfo/X86/gmlt-no-split-dwarf-inlining-empty.ll (diff)llvm.src/test/DebugInfo/X86/gmlt-no-split-dwarf-inlining-empty.ll
Revision 353784 by phosek:
[CMake][XRay] Silence llvm-config error when checking library support

Otherwise this propagates all the way to CMake and results in an error
during configuration. We check and handle the result and report warning
separately so this is not changing the behavior.

Differential Revision: https://reviews.llvm.org/D58086
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/cmake/Modules/CompilerRTUtils.cmake (diff)compiler-rt.src/cmake/Modules/CompilerRTUtils.cmake
Revision 353782 by kcc:
[libFuzzer] replace slow std::mt19937 with a much faster std::minstd_rand; second attempt after failed r352732, this time with a fix for cmake
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerRandom.h (diff)compiler-rt.src/lib/fuzzer/FuzzerRandom.h
The file was modified/compiler-rt/trunk/lib/fuzzer/tests/CMakeLists.txt (diff)compiler-rt.src/lib/fuzzer/tests/CMakeLists.txt
Revision 353781 by kcc:
[libFuzzer] simplify the code for print_coverage=1 so that it doesn't fail on broken debug info
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerTracePC.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerTracePC.cpp
Revision 353780 by yln:
[libFuzzer] Make coverage.test work on ARM64

Summary:
This test instruments the following code with coverage, runs the fuzzer
once, and asserts that there are uncovered PCs. The ARM64 backend
optimizes this code using the `csel` (Conditional select) instruction,
which removes all branching from the resulting machine code. The test
then fails because we do not have any uncovered PCs. The easiest
solution for now is to turn off optimization for the DSOs used in this
test.

```
int DSO1(int a) {
  if (a < 123456)
    return 0;
  return 1;
}
```

rdar://47646400

Reviewers: kcc

Tags: #sanitizers, #llvm

Differential Revision: https://reviews.llvm.org/D58087
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/fuzzer/coverage.test (diff)compiler-rt.src/test/fuzzer/coverage.test
Revision 353779 by efriedma:
[LoopReroll] Fix reroll root legality checking.

The code checked that the first root was an appropriate distance from
the base value, but skipped checking the other roots. This could lead to
rerolling a loop that can't be legally rerolled (at least, not without
rewriting the loop in a non-trivial way).

Differential Revision: https://reviews.llvm.org/D56812
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopRerollPass.cpp (diff)llvm.src/lib/Transforms/Scalar/LoopRerollPass.cpp
The file was modified/llvm/trunk/test/Transforms/LoopReroll/basic.ll (diff)llvm.src/test/Transforms/LoopReroll/basic.ll
Revision 353777 by kcc:
[libFuzzer] run the -fork=1 tests only on linux
Change TypePath in RepositoryPath in Workspace
The file was added/compiler-rt/trunk/test/fuzzer/fork.testcompiler-rt.src/test/fuzzer/fork.test
The file was modified/compiler-rt/trunk/test/fuzzer/simple.test (diff)compiler-rt.src/test/fuzzer/simple.test
Revision 353776 by reames:
[Test] Use autogenerated checks for more statepoint tests
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/statepoint-allocas.ll (diff)llvm.src/test/CodeGen/X86/statepoint-allocas.ll
The file was modified/llvm/trunk/test/CodeGen/X86/statepoint-call-lowering.ll (diff)llvm.src/test/CodeGen/X86/statepoint-call-lowering.ll
The file was modified/llvm/trunk/test/CodeGen/X86/statepoint-far-call.ll (diff)llvm.src/test/CodeGen/X86/statepoint-far-call.ll
The file was modified/llvm/trunk/test/CodeGen/X86/statepoint-invoke.ll (diff)llvm.src/test/CodeGen/X86/statepoint-invoke.ll
Revision 353775 by kcc:
[libFuzzer] extend the -fork=1 functionality. Still not fully usable, but good enough for the first unit test
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerDriver.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerDriver.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerFlags.def (diff)compiler-rt.src/lib/fuzzer/FuzzerFlags.def
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerIO.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerIO.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerIO.h (diff)compiler-rt.src/lib/fuzzer/FuzzerIO.h
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerIOPosix.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerIOPosix.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerIOWindows.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerIOWindows.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerInternal.h (diff)compiler-rt.src/lib/fuzzer/FuzzerInternal.h
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerLoop.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerLoop.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerMerge.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerMerge.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerRandom.h (diff)compiler-rt.src/lib/fuzzer/FuzzerRandom.h
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerUtilLinux.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerUtilLinux.cpp
The file was modified/compiler-rt/trunk/test/fuzzer/simple.test (diff)compiler-rt.src/test/fuzzer/simple.test
Revision 353774 by ericwf:
Don't declare fenv.h functions when they're a macro.

libc still provides function declarations, and these declarations
conflict with libc++'s
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/fenv.h (diff)libcxx.src/include/fenv.h
Revision 353773 by reames:
[Tests] Fill out a few tests around gc relocation uniquing
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/statepoint-uniqueing.ll (diff)llvm.src/test/CodeGen/X86/statepoint-uniqueing.ll
Revision 353772 by ericwf:
Make the sym_diff utilities more useful.

In particular when working with static libraries and libstdc++.
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/utils/libcxx/sym_check/extract.py (diff)libcxx.src/utils/libcxx/sym_check/extract.py
The file was modified/libcxx/trunk/utils/libcxx/sym_check/util.py (diff)libcxx.src/utils/libcxx/sym_check/util.py
The file was modified/libcxx/trunk/utils/sym_extract.py (diff)libcxx.src/utils/sym_extract.py
Revision 353771 by dblaikie:
DebugInfo: Split DWARF + gmlt + no-split-dwarf-inlining shouldn't emit anything to the .dwo file

This configuration (due to r349207) was intended not to emit any DWO CU,
but a degenerate CU was still being emitted - containing a header and a
DW_TAG_compile_unit with no attributes.

Under that situation, emit nothing to the .dwo file. (since this is a
dynamic property of the input the .dwo file is still emitted, just with
nothing in it (so a valid, but empty, ELF file) - if some other CU
didn't satisfy this criteria, its DWO CU would still go there, etc)
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfDebug.cpp (diff)llvm.src/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfFile.cpp (diff)llvm.src/lib/CodeGen/AsmPrinter/DwarfFile.cpp
The file was added/llvm/trunk/test/DebugInfo/X86/gmlt-no-split-dwarf-inlining-empty.llllvm.src/test/DebugInfo/X86/gmlt-no-split-dwarf-inlining-empty.ll
Revision 353770 by reames:
[Test] Autogenerate a statepoint test and actual show the reload
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/statepoint-uniqueing.ll (diff)llvm.src/test/CodeGen/X86/statepoint-uniqueing.ll
Revision 353767 by ericwf:
Add fenv.h header

Summary:
Some implementations of fenv.h use macros to define the functions they provide. This can cause problems when `std::fegetround()` is spelled in source.

This patch adds a `fenv.h` header to libc++ for the sole purpose of turning those macros into real functions.

Reviewers: rsmith, mclow.lists, ldionne

Reviewed By: rsmith

Subscribers: mgorny, christof, libcxx-commits

Differential Revision: https://reviews.llvm.org/D57729
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/CMakeLists.txt (diff)libcxx.src/include/CMakeLists.txt
The file was added/libcxx/trunk/include/fenv.hlibcxx.src/include/fenv.h
The file was modified/libcxx/trunk/include/module.modulemap (diff)libcxx.src/include/module.modulemap
The file was added/libcxx/trunk/test/libcxx/depr/depr.c.headers/fenv.pass.cpplibcxx.src/test/libcxx/depr/depr.c.headers/fenv.pass.cpp
The file was modified/libcxx/trunk/test/libcxx/double_include.sh.cpp (diff)libcxx.src/test/libcxx/double_include.sh.cpp
The file was modified/libcxx/trunk/test/libcxx/include_as_c.sh.cpp (diff)libcxx.src/test/libcxx/include_as_c.sh.cpp
The file was modified/libcxx/trunk/test/std/depr/depr.c.headers/fenv_h.pass.cpp (diff)libcxx.src/test/std/depr/depr.c.headers/fenv_h.pass.cpp
Revision 353766 by reames:
Be conservative about unordered accesses for the moment

Background: As described in https://reviews.llvm.org/D57601, I'm working towards separating volatile and atomic in the MMO uses for atomic instructions.

In https://reviews.llvm.org/D57593, I fixed a bug where isUnordered was returning the wrong result, but didn't account for the fact I was getting slightly ahead of myself. While both uses of isUnordered are correct (as far as I can tell), we don't have tests to demonstrate this and being aggressive gets in the way of having the removal of volatile truly be non-functional. Once D57601 lands, I will return to these call sites, revert this patch, and add the appropriate tests to show the expected behaviour.

Differential Revision: https://reviews.llvm.org/D57802
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/ImplicitNullChecks.cpp (diff)llvm.src/lib/CodeGen/ImplicitNullChecks.cpp
The file was modified/llvm/trunk/lib/CodeGen/MachineInstr.cpp (diff)llvm.src/lib/CodeGen/MachineInstr.cpp
Revision 353765 by epilk:
Add a new attribute, fortify_stdlib

This attribute applies to declarations of C stdlib functions
(sprintf, memcpy...) that have known fortified variants
(__sprintf_chk, __memcpy_chk, ...). When applied, clang will emit
calls to the fortified variant functions instead of calls to the
defaults.

In GCC, this is done by adding gnu_inline-style wrapper functions,
but that doesn't work for us for variadic functions because we don't
support __builtin_va_arg_pack (and have no intention to).

This attribute takes two arguments, the first is 'type' argument
passed through to __builtin_object_size, and the second is a flag
argument that gets passed through to the variadic checking variants.

rdar://47905754

Differential revision: https://reviews.llvm.org/D57918
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/Attr.td (diff)clang.src/include/clang/Basic/Attr.td
The file was modified/cfe/trunk/include/clang/Basic/AttrDocs.td (diff)clang.src/include/clang/Basic/AttrDocs.td
The file was modified/cfe/trunk/include/clang/Basic/Builtins.h (diff)clang.src/include/clang/Basic/Builtins.h
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticSemaKinds.td (diff)clang.src/include/clang/Basic/DiagnosticSemaKinds.td
The file was modified/cfe/trunk/lib/Basic/Builtins.cpp (diff)clang.src/lib/Basic/Builtins.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cpp (diff)clang.src/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/lib/CodeGen/CodeGenFunction.h (diff)clang.src/lib/CodeGen/CodeGenFunction.h
The file was modified/cfe/trunk/lib/Sema/SemaDeclAttr.cpp (diff)clang.src/lib/Sema/SemaDeclAttr.cpp
The file was added/cfe/trunk/test/CodeGen/fortify-std-lib.cclang.src/test/CodeGen/fortify-std-lib.c
The file was modified/cfe/trunk/test/Misc/pragma-attribute-supported-attributes-list.test (diff)clang.src/test/Misc/pragma-attribute-supported-attributes-list.test
The file was added/cfe/trunk/test/Sema/fortify-std-lib.cclang.src/test/Sema/fortify-std-lib.c
Revision 353763 by dsanders:
[tblgen] Add a timer covering the time spent reading the Instruction defs

This patch adds a -time-regions option to tablegen that can enable timers
(currently only one) that assess the performance of tablegen itself. This
can be useful for identifying scaling problems with tablegen backends.

This particular timer has allowed me to ignore time that is not attributed
the GISel combiner pass. It's useful by itself but it is particularly
useful in combination with https://reviews.llvm.org/D52954 which causes
this period of time to be annotated within Xcode Instruments which in turn
allows profile samples and recorded allocations attributed to reading
instructions to be filtered out.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/TableGen/TableGenBackend.h (diff)llvm.src/include/llvm/TableGen/TableGenBackend.h
The file was modified/llvm/trunk/utils/TableGen/CodeGenTarget.cpp (diff)llvm.src/utils/TableGen/CodeGenTarget.cpp
The file was modified/llvm/trunk/utils/TableGen/TableGen.cpp (diff)llvm.src/utils/TableGen/TableGen.cpp
Revision 353762 by efriedma:
[Sema] Mark GNU compound literal array init as an rvalue.

Basically the same issue as string init, except it didn't really have
any visible consequences before I removed the implicit lvalue-to-rvalue
conversion from CodeGen.

While I'm here, a couple minor drive-by cleanups: IgnoreParens never
returns a ConstantExpr, and there was a potential crash with string init
involving a ChooseExpr.

The analyzer test change maybe indicates we could simplify the analyzer
code a little with this fix?  Apparently a hack was added to support
lvalues in initializers in r315750, but I'm not really familiar with the
relevant code.

Fixes regression reported in the kernel build at
https://bugs.llvm.org/show_bug.cgi?id=40430#c6 .

Differential Revision: https://reviews.llvm.org/D58069
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaInit.cpp (diff)clang.src/lib/Sema/SemaInit.cpp
The file was modified/cfe/trunk/test/Analysis/compound-literals.c (diff)clang.src/test/Analysis/compound-literals.c
The file was modified/cfe/trunk/test/CodeGen/compound-literal.c (diff)clang.src/test/CodeGen/compound-literal.c
Revision 353761 by aheejin:
[WebAssembly] Make thread-related options consistent

Summary:
There have been three options related to threads and users had to set
all three of them separately to get the correct compilation results.
This makes sure the relationship between the options makes sense and
sets necessary options for users if only part of the necessary options
are specified. This does:

- Remove `-matomics`; this option alone does not enable anything, so
  removed it to not confuse users.
- `-mthread-model posix` sets `-target-feature +atomics`
- `-pthread` sets both `-target-feature +atomics` and
  `-mthread-model posix`
Also errors out when explicitly given options don't match, such as
`-pthread` is given with `-mthread-model single`.

Reviewers: dschuff, sbc100, tlively, sunfish

Subscribers: jgravelle-google, jfb, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D57874
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Driver/Options.td (diff)clang.src/include/clang/Driver/Options.td
The file was modified/cfe/trunk/include/clang/Driver/ToolChain.h (diff)clang.src/include/clang/Driver/ToolChain.h
The file was modified/cfe/trunk/lib/Driver/Driver.cpp (diff)clang.src/lib/Driver/Driver.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/Clang.cpp (diff)clang.src/lib/Driver/ToolChains/Clang.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/WebAssembly.cpp (diff)clang.src/lib/Driver/ToolChains/WebAssembly.cpp
The file was modified/cfe/trunk/lib/Driver/ToolChains/WebAssembly.h (diff)clang.src/lib/Driver/ToolChains/WebAssembly.h
The file was modified/cfe/trunk/test/Driver/wasm-toolchain.c (diff)clang.src/test/Driver/wasm-toolchain.c
The file was modified/cfe/trunk/test/Preprocessor/wasm-target-features.c (diff)clang.src/test/Preprocessor/wasm-target-features.c
Revision 353760 by thegameg:
[NFC][clangd] Remove unused lambda capture

Avoid this warning:

llvm/clang-tools-extra/clangd/ClangdServer.cpp:365:23: warning: lambda
capture 'this' is not used [-Wunused-lambda-capture]

  auto Action = [Sel, this](decltype(CB) CB, std::string File,
                    ~~^~~~
1 warning generated.
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/ClangdServer.cpp (diff)clang-tools-extra.src/clangd/ClangdServer.cpp
Revision 353759 by arsenm:
GlobalISel: Verify G_EXTRACT
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/MachineVerifier.cpp (diff)llvm.src/lib/CodeGen/MachineVerifier.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-extract.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-extract.mir
The file was added/llvm/trunk/test/Verifier/test_g_extract.mirllvm.src/test/Verifier/test_g_extract.mir
Revision 353758 by evandro:
[TargetLibraryInfo] Update run time support for Windows

It seems that, since VC19, the `float` C99 math functions are supported for all
targets, unlike the C89 ones.

According to the discussion at https://reviews.llvm.org/D57625.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/TargetLibraryInfo.cpp (diff)llvm.src/lib/Analysis/TargetLibraryInfo.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/double-float-shrink-1.ll (diff)llvm.src/test/Transforms/InstCombine/double-float-shrink-1.ll
The file was modified/llvm/trunk/test/Transforms/InstCombine/pow-1.ll (diff)llvm.src/test/Transforms/InstCombine/pow-1.ll
Revision 353757 by apazos:
[LegalizeTypes] Expand FNEG to bitwise op for IEEE FP types

Summary:
Except for custom floating point types x86_fp80 and ppc_fp128,
expand Y = FNEG(X) to Y = X ^ sign mask to avoid library call.
Using bitwise operation can improve code size and performance.

Reviewers: efriedma

Reviewed By: efriedma

Subscribers: efriedma, kpn, arsenm, eli.friedman, javed.absar, rbar, johnrusso, simoncook, sabuasal, niosHD, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, asb, llvm-commits

Differential Revision: https://reviews.llvm.org/D57875
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/LegalizeFloatTypes.cpp
The file was added/llvm/trunk/test/CodeGen/ARM/legalize-fneg.llllvm.src/test/CodeGen/ARM/legalize-fneg.ll
The file was added/llvm/trunk/test/CodeGen/RISCV/legalize-fneg.llllvm.src/test/CodeGen/RISCV/legalize-fneg.ll
Revision 353755 by scott.linder:
[IRReader] Expose getLazyIRModule

Currently there is no way to lazy-load an in-memory IR module without
first writing it to disk. This patch just exposes the existing
implementation of getLazyIRModule.

This is effectively a revert of rL212364

Differential Revision: https://reviews.llvm.org/D56203
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IRReader/IRReader.h (diff)llvm.src/include/llvm/IRReader/IRReader.h
The file was modified/llvm/trunk/lib/IRReader/IRReader.cpp (diff)llvm.src/lib/IRReader/IRReader.cpp
Revision 353754 by arsenm:
GlobalISel: Implement moreElementsVector for implicit_def
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h (diff)llvm.src/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPULegalizerInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-and.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-and.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-ashr.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-ashr.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-extract.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-extract.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fabs.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fabs.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fadd.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fadd.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fcanonicalize.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fcanonicalize.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fma.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fma.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fmul.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fneg.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fneg.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fpext.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fpext.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fsqrt.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fsqrt.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-fsub.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fsub.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-implicit-def.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-implicit-def.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-lshr.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-lshr.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-or.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-or.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-shl.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-unmerge-values.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-unmerge-values.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-xor.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-xor.mir
Revision 353750 by arsenm:
GlobalISel: Fix not calling the observer when legalizing G_EXTRACT
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
Revision 353746 by dsanders:
[globalisel] Correct string emitted by GISelChangeObserver::erasingInstr()

The API indicates that the MI is about to be erased rather than it has been erased.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/Combiner.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/Combiner.cpp
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/prelegalizercombiner-extending-loads-cornercases.mir (diff)llvm.src/test/CodeGen/AArch64/GlobalISel/prelegalizercombiner-extending-loads-cornercases.mir
Revision 353745 by ctopper:
[X86] Correct the memory operand for the FLD emitted in FP_TO_INTHelper for 32-bit SSE targets.

We were using DstTy, but that represents the integer type we are converting to which is i64 in this
case. The FLD is part of an intermediate step to get from the SSE registers to the x87 registers.
If the floating point type is f32, the memory operand should reflect a 4 byte access not an 8 byte
access. The store we used to get from SSE to the stack is using the corect size.

While there, consistenly use TheVT in place of Op.getOperand(0).getValueType() throughout the function.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.cpp (diff)llvm.src/lib/Target/X86/X86ISelLowering.cpp
Revision 353744 by nico:
Fix a few tests that were missing ':' on CHECK lines and weren't testing anything.

Found by `git grep '\/\/ CHECK-[^: ]* ' clang/test/ | grep -v RUN:`.

Also tweak CodeGenCXX/arm-swiftcall.cpp to still pass now that it checks more.

Differential Revision: https://reviews.llvm.org/D58061
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/AST/ast-dump-attr.cpp (diff)clang.src/test/AST/ast-dump-attr.cpp
The file was modified/cfe/trunk/test/CodeGenCXX/arm-swiftcall.cpp (diff)clang.src/test/CodeGenCXX/arm-swiftcall.cpp
The file was modified/cfe/trunk/test/CodeGenCXX/cxx1z-init-statement.cpp (diff)clang.src/test/CodeGenCXX/cxx1z-init-statement.cpp
The file was modified/cfe/trunk/test/CodeGenCXX/cxx2a-compare.cpp (diff)clang.src/test/CodeGenCXX/cxx2a-compare.cpp
The file was modified/cfe/trunk/test/CodeGenCXX/debug-info-inheriting-constructor.cpp (diff)clang.src/test/CodeGenCXX/debug-info-inheriting-constructor.cpp
The file was modified/cfe/trunk/test/CodeGenCXX/vtable-layout.cpp (diff)clang.src/test/CodeGenCXX/vtable-layout.cpp
The file was modified/cfe/trunk/test/CodeGenObjC/gnu-init.m (diff)clang.src/test/CodeGenObjC/gnu-init.m
The file was modified/cfe/trunk/test/CodeGenObjC/os_log.m (diff)clang.src/test/CodeGenObjC/os_log.m
Revision 353743 by mattd:
[llvm-cxxfilt] Split and demangle stdin input

Summary:
Originally, llvm-cxxfilt would treat a line as a single mangled item to be demangled.
If a mangled name appears in the middle of that string, that name would not be demangled.

GNU c++filt  splits and demangles every word  in a  string that is piped to it via stdin.
Prior to this patch llvm-cxxfilt would never split strings  piped to it.
This patch replicates the GNU behavior and splits strings that are piped to it via stdin.

This fixes PR39990

Reviewers: compnerd, jhenderson, davide

Reviewed By: compnerd, jhenderson

Subscribers: erik.pilkington, jhenderson, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D57350
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-cxxfilt/simple.test (diff)llvm.src/test/tools/llvm-cxxfilt/simple.test
The file was modified/llvm/trunk/test/tools/llvm-cxxfilt/types.test (diff)llvm.src/test/tools/llvm-cxxfilt/types.test
The file was modified/llvm/trunk/tools/llvm-cxxfilt/llvm-cxxfilt.cpp (diff)llvm.src/tools/llvm-cxxfilt/llvm-cxxfilt.cpp
Revision 353742 by phosek:
[CodeGen] Set construction vtable visibility after creating initializer

We must only set the construction vtable visibility after we create the
vtable initializer, otherwise the global value will be treated as
declaration rather than definition and the visibility won't be set.

Differential Revision: https://reviews.llvm.org/D58010
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGVTables.cpp (diff)clang.src/lib/CodeGen/CGVTables.cpp
The file was added/cfe/trunk/test/CodeGen/construction-vtable-visibility.cppclang.src/test/CodeGen/construction-vtable-visibility.cpp
Revision 353741 by dsanders:
[globalisel] Restore comment explaining the nits of GISelChangeObserver::createdInstr()
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h (diff)llvm.src/include/llvm/CodeGen/GlobalISel/GISelChangeObserver.h