FailedChanges

Summary

  1. [msan] Don't delete MSanAtExitRecord Summary: Pre 2.27 libc can run same atexit handler twice We will keep MSanAtExitRecord and reset fun to mark it as executed. Fix PR40162 Reviewers: eugenis Subscribers: jfb, jdoerfert, #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D58221
  2. [CUDA][HIP] Use device side kernel and variable names when registering them __hipRegisterFunction and __hipRegisterVar need to accept device side kernel and variable names so that HIP runtime can associate kernel stub functions in host code with kernel symbols in fat binaries, and associate shadow variables in host code with device variables in fat binaries. Currently, clang assumes kernel functions and device variables have the same name as the kernel stub functions and shadow variables. However, when host is compiled in windows with MSVC C++ ABI and device is compiled with Itanium C++ ABI (e.g. AMDGPU), kernels and device symbols in fat binary are mangled differently than host. This patch gets the device side kernel and variable name by mangling them in the mangle context of aux target. Differential Revision: https://reviews.llvm.org/D58163
  3. [X86] Make (f80 (sint_to_fp (i16))) use fistps/fisttps instead of fistpl/fisttpl when SSE is enabled. When SSE is enabled sint_to_fp with i16 is blindly promoted to i32, but that changes the behavior of f80 conversion. Move the promotion to i16 to LowerFP_TO_INT so we can limit it based on the floating point type.
  4. Revert "[llvm-objdump] Allow short options without arguments to be grouped" Reverted due to failures on the llvm-hexagon-elf. This reverts commit 77e1f27476c89f65eeb496d131065177e6417f23.
  5. Relax restriction in tests to where "-emit-llvm-bc" and "-emit-obj" must appear. The CHECK lines as structured were requiring them to appear only in a certain position while all that is really needed is to check that they are present.
  6. [libFuzzer] trying to fix the bot (can't reproduce the build failure locally)
  7. Fix for asan bots
  8. [llvm-objdump] Allow short options without arguments to be grouped Summary: https://bugs.llvm.org/show_bug.cgi?id=31679 Reviewers: kristina, jhenderson, grimar, jakehehrlich, rupprecht Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57904
  9. [libFuzzer] add threads to the fork mode: now you can pass -fork=N to run N concurrent workers. Fork mode is still work-in-progress.
  10. [globalisel][combine] Split existing rules into a match and apply step Summary: The declarative tablegen definitions split rules into match and apply steps. Prepare for that by doing the same in the C++ implementations. This aids some of the migration effort while the tablegen version is incomplete. Reviewers: bogner, volkan, aditya_nandakumar, paquette, aemerson Reviewed By: aditya_nandakumar Subscribers: rovka, kristof.beyls, Petar.Avramovic, jdoerfert, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58150
  11. [llvm-ar][libObject] Fix relative paths when nesting thin archives. Summary: When adding one thin archive to another, we currently chop off the relative path to the flattened members. For instance, when adding `foo/child.a` (which contains `x.txt`) to `parent.a`, when flattening it we should add it as `foo/x.txt` (which exists) instead of `x.txt` (which does not exist). As a note, this also undoes the `IsNew` parameter of handling relative paths in r288280. The unit test there still passes. This was reported as part of testing the kernel build with llvm-ar: https://patchwork.kernel.org/patch/10767545/ (see the second point). Reviewers: mstorsjo, pcc, ruiu, davide, david2050, inglorion Reviewed By: ruiu Subscribers: void, jdoerfert, tpimh, mgorny, hans, nickdesaulniers, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57842
  12. [PowerPC][NFC] Added tests for prologue and epilogue code gen. Added four test files to check the existing behaviour of prologue and epilogue code generation. This patch was done as a setup for the upcoming patch listed on Phabricator that will change how the prologue and epilogue work. The upcoming patch is: https://reviews.llvm.org/D42590
  13. [ConstProp] add IR tests to show miscompiles; NFC A fix for these is proposed in D51216.
  14. [llvm-readobj] Dump GNU_PROPERTY_X86_ISA_1_{NEEDED,USED} notes in .note.gnu.property Reviewers: grimar, rupprecht Reviewed By: rupprecht Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58175
  15. [HWASAN] Updated HWASAN design document to better portray the chance of missing a bug. Summary: Provided rule of thumb percentage chances of miss for 4 and 8 bit tag sizes. Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D58195
  16. [SelectionDAG] Inline a single use helper function, and remove last non-MMO interface [NFC] For D57601, we need to know whether the instruction is volatile. We'd either have to pass yet another parameter, or just standardize on the MMO interface. I chose the second.
  17. [RegAllocGreedy] Take last chance recoloring into account in evicting. Last chance recoloring inserts into FixedRegisters those virtual registers it is attempting to assign a physical register to. We must consider these when we consider candidates for eviction so that we do not end up evicting something while we are attempting to recolor to assign it. This is hitting in an out-of-tree target and no longer reproduces on trunk. That does not appear to be a result of it having been fixed, but rather, it appears that optimization changes and/or other changes to register allocation mask the problem. I haven't found a way to come up with a reasonable test case for this (i.e. one that I can actually commit to open source, is reasonable in size, and actually reproduces the issue). rdar://problem/45708741
  18. [AVR] Fix a typo - 's/analisys/analysis'
  19. [WebAssembly] memory.fill Summary: memset lowering, fix argument types in memcpy lowering, and test encodings. Depends on D57736. Reviewers: aheejin Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57791
  20. [NewPM] Second attempt at porting ASan This is the second attempt to port ASan to new PM after D52739. This takes the initialization requried by ASan from the Module by moving it into a separate class with it's own analysis that the new PM ASan can use. Changes: - Split AddressSanitizer into 2 passes: 1 for the instrumentation on the function, and 1 for the pass itself which creates an instance of the first during it's run. The same is done for AddressSanitizerModule. - Add new PM AddressSanitizer and AddressSanitizerModule. - Add legacy and new PM analyses for reading data needed to initialize ASan with. - Removed DominatorTree dependency from ASan since it was unused. - Move GlobalsMetadata and ShadowMapping out of anonymous namespace since the new PM analysis holds these 2 classes and will need to expose them. Differential Revision: https://reviews.llvm.org/D56470
  21. Restore Check for Unreachable Exit Block in -Winfinite-recursion Summary: When this was rewritten in D43737, the logic changed to better explore infinite loops. The check for a reachable exit block was deleted which accidentally introduced false positives in case the exit node was unreachable. We were testing for cases like this, but @steven_wu provided an additional test case that I've included in the regression tests for this patch. Reviewers: steven_wu, rtrieu Reviewed By: steven_wu, rtrieu Subscribers: cfe-commits, steven_wu Tags: #clang Differential Revision: https://reviews.llvm.org/D58122
  22. [WebAssembly] Bulk memory intrinsics and builtins Summary: implements llvm intrinsics and clang intrinsics for memory.init and data.drop. Reviewers: aheejin Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D57736
  23. Revert r353962 Specialization of Optional for trivially copyable types yields failure on the buildbots I fail to reproduce locally. Better safe than sorry, reverting.
  24. gn build: Merge r353957.
  25. [SelectionDAG] Kill last uses of getAtomic w/o a MMO operand [NFC] The helper function was used by only two callers, and largely ended up providing distinct functionality based on optional arguments and opcode. Inline and simply to make the functionality much more clear.
  26. [Sema] Delay checking whether objc_designated_initializer is being applied to an init method This fixes a regression that was caused by r335084, which reversed the order that attributes are applied. objc_method_family can change whether a method is an init method, so the order that these attributes are applied matters. The commit fixes this by delaying the init check until after all attributes have been applied. rdar://47829358 Differential revision: https://reviews.llvm.org/D58152
  27. [PowerPC] Stop defining _ARCH_PWR6X on POWER7 and up Summary: The predefined macro `_ARCH_PWR6X` is associated with GCC's `-mcpu=power6x` option, which enables generation of P6 "raw mode" instructions such as `mftgpr`. Later POWER processors build upon the "architected mode", not the raw one. `_ARCH_PWR6X` should not be defined for these later processors. Fixes PR#40236. Reviewers: echristo, hfinkel, kbarton, nemanjai, wschmidt Reviewed By: hfinkel Subscribers: jsji, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D58128
  28. [X86] Add 'mpx' to getHostCPUFeatures.
  29. [CodeExtractor] Only lift lifetime markers present in the extraction region When CodeExtractor finds liftime markers referencing inputs to the extraction region, it lifts these markers out of the region and inserts them around the call to the extracted function (see r350420, PR39671). However, it should *only* lift lifetime markers that are actually present in the extraction region. I.e., if a start marker is present in the extraction region but a corresponding end marker isn't (or vice versa), only the start marker (or end marker, resp.) should be lifted. Differential Revision: https://reviews.llvm.org/D57834
  30. [Tests] More unordered atomic lowering tests This time, focused around narrowing and widening transformations. Also, include a few simple memory optimization tests to highlight missed oppurtunities. This is part of building up the test base for D57601.
  31. [clang] Make sure C99/C11 features in <float.h> are provided in C++11 Summary: Previously, those #defines were only provided in C or when GNU extensions were enabled. We need those #defines in C++11 and above, too. Reviewers: jfb, eli.friedman Subscribers: jkorous, dexonsmith, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D58149
  32. Re-enable the test disabled in r353836 and hopefully make it pass in gcc builds Argument evaluation order is different between gcc and clang, so pull out the Builder calls to make the generated IR independent of the host compiler's argument evaluation order. Thanks to rnk for reminding me of this clang/gcc difference.
  33. [Tests] RMW folding tests w/unordered atomic operations We get a suprising number of these today actually, but some are missed. The main point of this is strengthen the test set for D57601.
  34. [Headers][mips] Add `__attribute__((__mode__(__unwind_word__)))` to the _Unwind_Word / _Unwind_SWord definitions The rationale of this change is to fix _Unwind_Word / _Unwind_SWord definitions for MIPS N32 ABI. This ABI uses 32-bit pointers, but _Unwind_Word and _Unwind_SWord types are eight bytes long. # The __attribute__((__mode__(__unwind_word__))) is added to the type definitions. It makes them equal to the corresponding definitions used by GCC and allows to override types using `getUnwindWordWidth` function. # The `getUnwindWordWidth` virtual function override in the `MipsTargetInfo` class and provides correct type size values. Differential revision: https://reviews.llvm.org/D58165
  35. [Tests] Add a bunch of tests for load folding w/unordered atomics
  36. [X86] Add 'fxsr' to the getHostCPUFeatures detection code. We implicitly mark this feature as enabled when the target is 64-bits, but our detection code for -march=native didn't support it so you can't detect it on 32-bit targets.
  37. Re-commit rL353927, patch included Make llvm::Optional<T> trivially copyable when T is trivially copyable This is an ever-recurring issue (see https://bugs.llvm.org/show_bug.cgi?id=39427 and https://bugs.llvm.org/show_bug.cgi?id=35978) but I believe that thanks to https://reviews.llvm.org/D54472 we can now ship a decent implementation of this. Basically the fact that llvm::is_trivially_copyable has a consistent behavior across compilers should prevent any ABI issue, and using in-place new instead of memcpy should keep compiler bugs away. This patch is slightly different from the original revision https://reviews.llvm.org/rL353927 but achieves the same goal. It just avoids going through std::conditional which may the code more explicit.
  38. [Driver] Pass +reserve-x25 to backend if -ffixed-x25 is specified This was accidentally omitted in r353957 breaking the Clang test.
  39. [Tests] First batch of cornercase tests for unordered atomics Mixture of things we legally can't do, and things we're missing. Once D57601 is in, the later will serve as a punch list.
  40. [Tests] Auto update a test
  41. [AArch64] Support reserving arbitrary general purpose registers This is a follow up to D48580 and D48581 which allows reserving arbitrary general purpose registers with the exception of registers with special purpose (X8, X16-X18, X29, X30) and registers used by LLVM (X0, X19). This change also generalizes some of the existing logic to rely entirely on values generated from tablegen. Differential Revision: https://reviews.llvm.org/D56305
  42. [Tests] Rename some test files for consistency Most are named "atomic-something" so rename the few which were "atomic_something". I keep typing the wrong name due to the inconsistency. :)
  43. [libcxx] Do not assume the number of elements in a moved-from associative container Reviewed as https://reviews.llvm.org/D57903. Thanks to Andrey Maksimov for the patch.
  44. [DebugInfo][DAG] Either salvage dangling debug info or emit Undef DBG_VALUEs In this patch SelectionDAG tries to salvage any dbg.values that are going to be dropped, in case they can be recovered from Values in the current BB. It also strengthens SelectionDAGs handling of dangling debug data, so that dbg.values are *always* emitted (as Undef or otherwise) instead of dangling forever. The motivation behind this patch exists in the new test case: a memory address (here a bitcast and GEP) exist in one basic block, and a dbg.value referring to the address is left in the 'next' block. The base pointer is live across all basic blocks. In current llvm trunk the dbg.value cannot be encoded, and it isn't even emitted as an Undef DBG_VALUE. The change is simply: if we're definitely going to drop a dbg.value, repeatedly apply salvageDebugInfo to its operand until either we find something that can be encoded, or we can't salvage any further in which case we produce an Undef DBG_VALUE. To know when we're "definitely going to drop a dbg.value", SelectionDAG signals SelectionDAGBuilder when all IR instructions have been encoded to force salvaging. This ensures that any dbg.value that's dangling after DAG creation will have a corresponding DBG_VALUE encoded. Differential Revision: https://reviews.llvm.org/D57694
  45. [X86][AVX] Add shuffle_v8i32_0dcd3f14 shuffle test case
  46. [HIP] Handle compile -m options and propagate into LLC Allow the compile options for -m such as -mxnack/-mno-xnack, -msram-ecc/-mno-sram-ecc, -mcode-object-v3/-mno-code-object-v3 to propagate into LLC args. Fix an issue where -mattr was pushed even when it was empty. Also add lit tests to verify features are properly passed. Differential Revision: https://reviews.llvm.org/D57977 Reviewers: yaxunl, kzhuravl
  47. [llvm-readobj] Rename pr_data to PrData As requested by grimar in D58112.
  48. [DebugInfo][DAG] Refactor dbg.value lowering into its own method This is a pure copy-and-paste job, moving the logic for lowering dbg.value intrinsics to SDDbgValues into its own function. This is ahead of adding some more users of this logic. Differential Revision: https://reviews.llvm.org/D57697
  49. [MCA] Store a bitmask of used groups in the instruction descriptor. This is to speedup 'checkAvailability' queries in class ResourceManager. No functional change intended.
  50. [DebugInfo][DAG] Limit special-casing of dbg.values for Arguments SelectionDAGBuilder has special handling for dbg.value intrinsics that are understood to define the location of function parameters on entry to the function. To enable this, we avoid recording a dbg.value as a virtual register reference if it might be such a parameter, so that it later hits EmitFuncArgumentDbgValue. This patch reduces the set of circumstances where we avoid recording a dbg.value as a virtual register reference, to allow more "normal" variables to be recorded that way. We now only bypass for potential parameters if: * The dbg.value operand is an Argument, * The Variable is a parameter, and * The Variable is not inlined. meaning it's very likely that the dbg.value is a function-entry parameter location. Differential Revision: https://reviews.llvm.org/D57584
  51. tsan: add fiber support This patch adds functions for managing fibers: __tsan_get_current_fiber() __tsan_create_fiber() __tsan_destroy_fiber() __tsan_switch_to_fiber() __tsan_set_fiber_name() See the added tests for use examples. Author: yuri (Yuri Per) Reviewed in: https://reviews.llvm.org/D54889 [The previous commit of this change was reverted, this is a resubmit with a squashed fix for check_analyze.sh and COMMON_INTERCEPTOR_NOTHING_IS_INITIALIZED]
  52. [test] Tweak driver test from r353917 and r353922 to pass with a nondefault CLANG_DEFAULT_LINKER Force -fuse-ld=ld, as some other tests in the same file do. Loosen the regex matching the linker tool name as well, as this can end up being <triple>-ld in case such a named tool exists.
  53. [Analyzer] Crash fix for FindLastStoreBRVisitor FindLastStoreBRVisitor tries to find the first node in the exploded graph where the current value was assigned to a region. This node is called the "store site". It is identified by a pair of Pred and Succ nodes where Succ already has the binding for the value while Pred does not have it. However the visitor mistakenly identifies a node pair as the store site where the value is a `LazyCompoundVal` and `Pred` does not have a store yet but `Succ` has it. In this case the `LazyCompoundVal` is different in the `Pred` node because it also contains the store which is different in the two nodes. This error may lead to crashes (a declaration is cast to a parameter declaration without check) or misleading bug path notes. In this patch we fix this problem by checking for unequal `LazyCompoundVals`: if their region is equal, and their store is the same as the store of their nodes we consider them as equal when looking for the "store site". This is an approximation because we do not check for differences of the subvalues (structure members or array elements) in the stores. Differential Revision: https://reviews.llvm.org/D58067
  54. Revert "tsan: update check_analyze.sh" This reverts commit r353820, to go with the revert of r353817.
  55. [NFC] Add const qualifiers where possible
  56. Revert r353927
  57. Revert "tsan: add fiber support" This reverts commit r353817 because we think it broke AARch64 and PowerPC buildbots.
  58. [ARM GlobalISel] Support G_SELECT for Thumb2 Same as arm mode, but slightly different opcodes.
  59. [MCA][Scheduler] Use latency information to further classify busy instructions. This patch introduces a new instruction stage named 'IS_PENDING'. An instruction transitions from the IS_DISPATCHED to the IS_PENDING stage if input registers are not available, but their latency is known. This patch also adds a new set of instructions named 'PendingSet' to class Scheduler. The idea is that the PendingSet will only contain instructions that have reached the IS_PENDING stage. By construction, an instruction in the PendingSet is only dependent on instructions that have already reached the execution stage. The plan is to use this knowledge to identify bottlenecks caused by data dependencies (see PR37494). Differential Revision: https://reviews.llvm.org/D58066
  60. [DebugInfo][InstCombine] Prefer to salvage debuginfo over sinking it When instcombine sinks an instruction between two basic blocks, it sinks any dbg.value users in the source block with it, to prevent debug use-before-free. However we can do better by attempting to salvage the debug users, which would avoid moving where the variable location changes. If we successfully salvage, still sink a (cloned) dbg.value with the sunk instruction, as the sunk instruction is more likely to be "live" later in the compilation process. If we can't salvage dbg.value users of a sunk instruction, mark the dbg.values in the original block as being undef. This terminates any earlier variable location range, and represents the fact that we've optimized out the variable location for a portion of the program. Differential Revision: https://reviews.llvm.org/D56788
  61. Missing header
  62. [GuardWidening] Support widening of explicitly expressed guards This patch adds support of guards expressed in explicit form via `widenable_condition` in Guard Widening pass. Differential Revision: https://reviews.llvm.org/D56075 Reviewed By: reames
  63. Look through typedefs in getFunctionTypeWithExceptionSpec Fixes https://bugs.llvm.org/show_bug.cgi?id=40658 Differential Revision: https://reviews.llvm.org/D58056
  64. [DebugInfo] Stop changing labels for register-described parameter DBG_VALUEs Summary: This is a follow-up to D57510. This patch stops DebugHandlerBase from changing the starting label for the first non-overlapping, register-described parameter DBG_VALUEs to the beginning of the function. That code did not consider what defined the registers, which could result in the ranges for the debug values starting before their defining instructions. We currently do not emit debug values for constant values directly at the start of the function, so this code is still useful for such values, but my intention is to remove the code from DebugHandlerBase completely when we get there. One reason for removing it is that the code violates the history map's ranges, which I think can make it quite confusing when troubleshooting. In D57510, PrologEpilogInserter was amended so that parameter DBG_VALUEs now are kept at the start of the entry block, even after emission of prologue code. That was done to reduce the degradation of debug completeness from this patch. PR40638 is another example, where the lexical-scope trimming that LDV does, in combination with scheduling, results in instructions after the prologue being left without locations. There might be other cases where the DBG_VALUEs are pushed further down, for which the DebugHandlerBase code may be helpful, but as it now quite often result in incorrect locations, even after the prologue, it seems better to remove that code, and try to work our way up with accurate locations. In the long run we should maybe not aim to provide accurate locations inside the prologue. Some single location descriptions, at least those referring to stack values, generate inaccurate values inside the epilogue, so we maybe should not aim to achieve accuracy for location lists. However, it seems that we now emit line number programs that can result in GDB and LLDB stopping inside the prologue when doing line number stepping into functions. See PR40188 for more information. A summary of some of the changed test cases is available in PR40188#c2. Reviewers: aprantl, dblaikie, rnk, jmorse Reviewed By: aprantl Subscribers: jdoerfert, jholewinski, jvesely, javed.absar, llvm-commits Tags: #debug-info, #llvm Differential Revision: https://reviews.llvm.org/D57511
  65. Make llvm::Optional<T> trivially copyable when T is trivially copyable This is an ever-recurring issue (see https://bugs.llvm.org/show_bug.cgi?id=39427 and https://bugs.llvm.org/show_bug.cgi?id=35978) but I believe that thanks to https://reviews.llvm.org/D54472 we can now ship a decent implementation of this. Basically the fact that llvm::is_trivially_copyable has a consistent behavior across compilers should prevent any ABI issue, and using in-place new instead of memcpy should keep compiler bugs away. Differential Revision: https://reviews.llvm.org/D57097
  66. [clangd] Handle a few more diag kinds in include fixer. Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D58135
  67. [llvm] [cmake] Provide split include paths in LLVMConfig Modify LLVMConfig to provide split variables for in-source and generated include paths. Currently, it uses a single value for both LLVM_INCLUDE_DIRS and LLVM_INCLUDE_DIR which works for install tree but fails hard at build tree (where LLVM_INCLUDE_DIR incorrectly contains multiple values). Instead, put the generated directory in LLVM_INCLUDE_DIR, and the source tree in LLVM_MAIN_INCLUDE_DIR which is consistent with in-LLVM builds. For install tree, both variables will have the same value. Differential Revision: https://reviews.llvm.org/D58109
  68. [X86][SLP] Enable SLP vectorization for 128-bit horizontal X86 instructions (add, sub) Try to use 64-bit SLP vectorization. In addition to horizontal instrs this change triggers optimizations for partial vector operations (for instance, using low halfs of 128-bit registers xmm0 and xmm1 to multiply <2 x float> by <2 x float>). Fixes llvm.org/PR32433
  69. [test] Fix the test from SVN r353917 when running without lld available These tests still relies on the default linker not to be overridden via e.g. CLANG_DEFAULT_LINKER in cmake.
  70. [X86] Use default expansion for (i64 fp_to_uint f80) when avx512 is enabled on 64-bit targets to match what happens without avx512. In 64-bit mode prior to avx512 we use Expand, but with avx512 we need to make f32/f64 conversions Legal so we use Custom and then do our own expansion for f80. But this seems to produce codegen differences relative to avx2. This patch corrects this.
  71. [X86] Refactor the FP_TO_INTHelper interface. NFCI -Pull the final stack load creation from the two callers into the helper. -Return a single SDValue instead of a std::pair. -Remove the Replace flag which isn't really needed.
  72. [llvm-objcopy] Add --strip-unneeded-symbol(s) Differential revision: https://reviews.llvm.org/D58027
  73. [profile] Provide lprofGetHostName for all windows environments This function doesn't use anything MSVC specific but works fine for any _WIN32 target. Differential Revision: https://reviews.llvm.org/D58106
  74. [MinGW] Add the profiling library when necessary Profiling still doesn't seem to work properly, but this at least hooks up the library and eases completing whatever is missing. Differential Revision: https://reviews.llvm.org/D58107
  75. [CMake] Avoid clang dependencies in the runtimes build Dependencies like clang aren't available in the runtimes build, this was accidentally omitted in D57992.
  76. [LoopSimplifyCFG] Re-enable const branch folding by default Known underlying bugs have been fixed, intensive fuzz testing did not find any new problems. Re-enabling by default. Feel free to revert if it causes any functional failures.
  77. [libFuzzer] a bit of refactoring of the fork mode
  78. [Sanitizer][NFC] Darwin: limit parallism for sanitizer_common tests Many sanitizer_common tests (ASan, TSan) run with a "sanitized process space" so we need to limit their parallism.
  79. [llvm-readobj] Dump GNU_PROPERTY_X86_FEATURE_2_{NEEDED,USED} notes in .note.gnu.property Summary: And change the output ("X86 features" -> "x86 feature") a bit. Reviewers: grimar, xiangzhangllvm, hjl.tools, rupprecht Reviewed By: rupprecht Subscribers: rupprecht, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58112
  80. [MC] Make symbol version errors non-fatal We stil don't have a source location, which is pretty lame, but at least we won't tell the user to file a clang bug report anymore. Fixes PR40712
  81. [xray][tests][RHDTS] Add -lstdc++ after LLVM libs, resolving link error with RHDTS Summary: A link error was encountered when using the Red Hat Developer Toolset. In the RHDTS, `libstdc++.so` is a linker script that may resolve symbols to a static library. This patch places `-lstdc++` later in the ordering. Reviewers: sfertile, nemanjai, tstellar, dberris Reviewed By: dberris Subscribers: dberris, mgorny, delcypher, jdoerfert, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D58144
  82. [dsymutil] Improve readability of cloneAllCompileUnits (NFC) Add some newlines and improve consistency between the two loops.
  83. [dsymutil] Don't clone empty CUs The DWARF standard says that an empty compile unit is not valid: > Each such contribution consists of a compilation unit header (see > Section 7.5.1.1 on page 200) followed by a single DW_TAG_compile_unit or > DW_TAG_partial_unit debugging information entry, together with its > children. Therefore we shouldn't clone them in dsymutil. Differential revision: https://reviews.llvm.org/D57979
  84. [tsan] #undef one-letter macros buildgo.sh puts most of sanitizer_common together in a single source file. These single-letter macros end up affecting a lot of unrelated code; #undef them as early as possible.
  85. [MemorySSA & LoopPassManager] Add remaining book keeping [NFCI]. Add plumbing to get MemorySSA in the remaining loop passes. Also update unit test to add the dependency. [EnableMSSALoopDependency remains disabled].
  86. AMDGPU: Try to use function specific ST Subtargets are a function level property, so ideally we would eliminate everywhere that needs to check the global one. Rename the function to try avoiding confusion.
  87. AMDGPU: Ignore CodeObjectV3 when inlining This was inhibiting inlining of library functions when clang was invoking the inliner directly. This is covering a bit of a mess with subtarget feature handling, and this shouldn't be a subtarget feature. The behavior is different depending on whether you are using a -mattr flag in clang, or llc, opt.
  88. [SystemZ] Remember to cast value to void to disable warning. Hopefully fixes buildbot problems.
  89. [LICM] Cap the clobbering calls in LICM. Summary: Unlimitted number of calls to getClobberingAccess can lead to high compile times in pathological cases. Switching EnableLicmCap flag from bool to int, and enabling to default 100. (tested to be appropriate for current bechmarks) We can revisit this value when enabling MemorySSA. Reviewers: sanjoy, chandlerc, george.burgess.iv Subscribers: jlebar, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D57968
  90. [Tests] A few more live-in deopt lowering tests Nothing super interesting, just making sure obvious cases work.
  91. Revert r353880 "[HIP] Handle compile -m options and propagate into LLC" This was still causing test failures in the clang test suite.
  92. AMDGPU/NFC: Remove SubtargetFeatureISAVersion since it is not used anywhere
  93. [libFuzzer] move the implementation of the fork mode into a separate file
  94. docs: Update the ShadowCallStack documentation. - Remove most of the discussion of the x86_64 implementation; link to an older version of the documentation for details of that implementation. - Add description of the compatibility and security issues discovered during the development of the aarch64 implementation for Android. Differential Revision: https://reviews.llvm.org/D58105
  95. AMDGPU: Remove duplicate processor (gfx900)
  96. [gn build] Separate debug and optimization settings This patch adds an `is_optimized` variable, orthogonal to `is_debug`, to allow for a gn analogue to `RelWithDebInfo` builds. As part of this we'll want to explicitly enable GC+ICF, for the sake of `is_debug && is_optimized` builds. The flags normally default to true except that if you pass `/DEBUG` they default to false. Differential Revision: https://reviews.llvm.org/D58075
  97. [X86] Follow up to r353878, add MSVC compatibility command lines to other intrinsic tests that uses packed structs to control alignment. r353878 fixed a bug in _mm_loadu_ps and added a command line to catch it. Adding additional command lines to prevent breaking other intrinsics in the future.
  98. [SelectionDAG] Clean up comments in SelectionDAGBuilder.h. NFC Remove redundant function/variable names from doxygen comments (as suggested in https://reviews.llvm.org/D57697).
  99. [HIP] Fix hip-toolchain-rdc tests Since we removed changed the way HIP Toolchain will propagate -m options into LLC, we need to remove from these older tests. This is related to rC353880. Differential Revision: https://reviews.llvm.org/D57977
  100. Fix auto-upgrade for the new parameter to llvm.objectsize r352664 added a 'dynamic' parameter to objectsize, but the AutoUpgrade changes were incomplete. Also, fix an off-by-one error I made in the upgrade logic that is now no longer unreachable. Differential revision: https://reviews.llvm.org/D58071
  101. [ConstProp] add test for miscompile from bitcast transform; NFC This problem goes with the fix in D51215.
  102. Make ModuleDependencyCollector's method virtual (NFC) For reproducers in LLDB we want to hook up into the existing clang infrastructure. To make that happen we need to be able to override the ModuleDependencyCollector's methods. The alternative was to inherit from the DependencyCollector directly, but that would mean re-implementing the ModuleDependencyListener and the ModuleDependencyPPCallbacks and ModuleDependencyMMCallbacks. Differential revision: https://reviews.llvm.org/D58072
  103. [HIP] Handle compile -m options and propagate into LLC Allow the compile options for -m such as -mxnack/-mno-xnack, -msram-ecc/-mno-sram-ecc, -mcode-object-v3/-mno-code-object-v3 to propagate into LLC args. Also add lit tests to verify features are properly passed. Differential Revision: https://reviews.llvm.org/D57977 Reviewers: yaxunl, kzhuravl
  104. [X86] Use __m128_u for _mm_loadu_ps after r353555 Add secondary triple to existing SSE test for it. I audited other uses of __attribute__((__packed__)) in the intrinsic headers, and this seemed to be the only missing one.
  105. Disable PIC/PIE for MSP430 target Relocatable code generation is meaningless on MSP430, as the platform is too small to use shared libraries. Patch by Dmitry Mikushev! Differential Revision: https://reviews.llvm.org/D56927
  106. [llvm-dwp] Use color-formatted error reporting
  107. [NFC] typo
  108. Fix undefined behaviour in PPCInstPrinter::printBranchOperand. Fix the undefined behaviour introduced by my previous patch r353865 (left shifting a potentially negative value), which was caught by the bots that run UBSan.
  109. [llvm-dwp] Avoid writing the output dwp file when there is an error Summary: Use ToolOutputFile to clean up the output file unless dwp actually finishes successfully. Reviewers: dblaikie Reviewed By: dblaikie Subscribers: jdoerfert, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58130
  110. [AArch64] Expand v8i8 cttz (PR39729) Fix for https://bugs.llvm.org/show_bug.cgi?id=39729. Rather than adding just a case for v8i8 I'm setting cttz to expand for all vector types. Differential Revision: https://reviews.llvm.org/D58008
  111. [InlineSpiller] Fix a crash due to lack of forward progress from remat (try 2) This is a recommit of r335091 Add more test cases for deopt-operands via regalloc, and r335077 [InlineSpiller] Fix a crash due to lack of forward progress from remat specifically for STATEPOINT. They were reverted due to a crash. This change includes the text of both original changes, but also includes three aditional pieces: 1) A bug fix for the observed crash. I had failed to record the failed remat value as live which resulted in an instruction being deleted which still had uses. With the machine verifier, this is caught quickly. Without it, we fail in StackSlotColoring due to an empty live interval from LiveStack. 2) A test case which demonstrates the fix for (1). See @test11. 3) A control flag which defaults to disabling this for the moment. Once I've run more extensive validaton, I will switch the default and then remove this flag.
  112. [AMDGPU] Require at least protected visibility for certain symbols This allows the global visibility controls to be restrictive while still populating the dynamic symbol table where required. Differential Revision: https://reviews.llvm.org/D56871
  113. [SystemZ] Use VGM whenever possible to load FP immediates. isFPImmLegal() has been extended to recognize certain FP immediates that can be built with VGM (Vector Generate Mask). These scalar FP immediates (that were previously loaded from the constant pool) are now selected as VGMF/VGMG in Select(). Review: Ulrich Weigand https://reviews.llvm.org/D58003
  114. [PowerPC] Fix printing of negative offsets in call instruction dissasembly.
  115. [GlobalISel][NFC] Gardening: Make translateSimpleUnaryIntrinsic general Instead of only having this code work for unary intrinsics, have it work for an arbitrary number of parameters. Factor out the cases that fall under this (fma, pow). This makes it a bit easier to add more intrinsics which don't require any special work. Differential Revision: https://reviews.llvm.org/D58079
  116. [tablegen] Add locations to many PrintFatalError() calls Summary: While working on the GISel Combiner, I noticed I was producing location-less error messages fairly often and set about fixing this. In the process, I noticed quite a few places elsewhere in TableGen that also neglected to include a relevant location. This patch adds locations to errors that relate to a specific record (or a field within it) and also have easy access to the relevant location. This is particularly useful when multiclasses are involved as many of these errors refer to the full name of a record and it's difficult to guess which substring is grep-able. Unfortunately, tablegen currently only supports Record granularity so it's not currently possible to point at a specific Init so these sometimes point at the record that caused the error rather than the precise origin of the error. Reviewers: bogner, aditya_nandakumar, volkan, aemerson, paquette, nhaehnle Reviewed By: nhaehnle Subscribers: jdoerfert, nhaehnle, asb, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, jrtc27, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58077
  117. [GlobalISel][AArch64] Select llvm.bswap* for non-vector types This teaches the IRTranslator to emit G_BSWAP when it runs into Intrinsic::bswap. This allows us to select G_BSWAP for non-vector types in AArch64. Add a select-bswap.mir test, and add global isel checks to a couple existing tests in test/CodeGen/AArch64. This doesn't handle every bswap case, since some of these rely on known bits stuff. This just lets us handle the naive case. Differential Revision: https://reviews.llvm.org/D58081
  118. [X86][AVX] Enable shuffle combining support for zero_extend A more limited version of rL352997 that had to be disabled in rL353198 - allow extension of any 128/256/512 bit vector that at least uses byte sized scalars.
  119. [DAGCombiner] convert logic-of-setcc into bit magic (PR40611) If we're comparing some value for equality against 2 constants and those constants have an absolute difference of just 1 bit, then we can offset and mask off that 1 bit and reduce to a single compare against zero: and/or (setcc X, C0, ne), (setcc X, C1, ne/eq) --> setcc ((add X, -C1), ~(C0 - C1)), 0, ne/eq https://rise4fun.com/Alive/XslKj This transform is disabled by default using a TLI hook ("convertSetCCLogicToBitwiseLogic()"). That should be overridden for AArch64, MIPS, Sparc and possibly others based on the asm shown in: https://bugs.llvm.org/show_bug.cgi?id=40611
  120. [clangd] Fix a lit-test. Summary: Fixes https://bugs.llvm.org/show_bug.cgi?id=40593. Non-percent-encoded chars doesn't cause any problems on the input-side since we assume everything after authority section is data and don't interpret them as delimeters. Reviewers: sammccall Subscribers: ilya-biryukov, ioeric, MaskRay, jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D58126
  121. [x86] add negative tests for setcc folds; NFC
  122. [SelectionDAG] Fix return calling convention in expansion of ?MULO Summary: The SMULO/UMULO DAG nodes, when not directly supported by the target, expand to a multiplication twice as wide. In case that the resulting type is not legal, the legalizer cannot directly call the intrinsic with the wide arguments; instead, it "pre-lowers" them by splitting them in halves. rL283203 made sure that on big endian targets, the legalizer passes the argument halves in the correct order. It did not do the same for the return value halves because the existing code used a hack; it put an illegal type into DAG and hoped that nothing would break and it would be correctly lowered elsewhere. rL307207 fixed this, handling return value halves similar to how argument handles are handled, but did not take big-endian targets into account. This commit fixes the expansion on big-endian targets, such as the out-of-tree OR1K target. Reviewers: eli.friedman, vadimcn Subscribers: george-hopkins, efriedma, llvm-commits Differential Revision: https://reviews.llvm.org/D45355
  123. [CMake][Fuchsia] Pass -ldl -lpthread LDFLAGS to second stage We're using static libc++ for the second stage which requires explicitly linking -ldl and -lpthread.
  124. [MCA] Improved debug prints. NFC
  125. [PowerPC] Regenerate test
  126. [libc++] Avoid UB in the no-exceptions mode in a few places Summary: A few places in the library seem to behave unexpectedly when the library is compiled or used with exceptions disabled. For example, not throwing an exception when a pointer is NULL can lead us to dereference the pointer later on, which is UB. This patch fixes such occurences. It's hard to tell whether there are other places where the no-exceptions mode misbehaves like this, because the replacement for throwing an exception does not always seem to be abort()ing, but at least this patch will improve the situation somewhat. See http://lists.llvm.org/pipermail/libcxx-dev/2019-January/000172.html Reviewers: mclow.lists, EricWF Subscribers: christof, jkorous, dexonsmith, libcxx-commits Differential Revision: https://reviews.llvm.org/D57761
  127. AMDGPU/GlobalISel: Add more insert/extract testcases
  128. [Codegen] Make sure kill flags are not incorrect from removed machine phi's We need to clear the kill flags on both SingleValReg and OldReg, to ensure they remain conservatively correct. Differential Revision: https://reviews.llvm.org/D58114
  129. [llvm-dwp] Abort when dwo_id is unset Summary: An empty dwo_id indicates a degenerate .dwo file that should not have been generated in the first place. Instead of discovering this error later when merging with another degenerate .dwo file, print an error immediately when noticing an unset dwo_id, including the filename of the offending file. Test case created by compiling a trivial file w/ `-fno-split-dwarf-inlining -gmlt -gsplit-dwarf -c` prior to r353771 Reviewers: dblaikie Reviewed By: dblaikie Subscribers: jdoerfert, aprantl, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D58085
  130. AMDGPU/GlobalISel: Only make f16 constants legal on f16 targets We could deal with it, but there's no real point.
  131. GlobalISel: Use default rounding mode when extending fconstant I don't think this matters since the values should all be exactly representable.
  132. GlobalISel: Move some more legalize cases into functions
Revision 354005 by Vitaly Buka:
[msan] Don't delete MSanAtExitRecord

Summary:
Pre 2.27 libc can run same atexit handler twice
We will keep MSanAtExitRecord and reset fun to mark it as executed.

Fix PR40162

Reviewers: eugenis

Subscribers: jfb, jdoerfert, #sanitizers, llvm-commits

Tags: #sanitizers, #llvm

Differential Revision: https://reviews.llvm.org/D58221
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/msan/msan_interceptors.cc (diff)compiler-rt.src/lib/msan/msan_interceptors.cc
The file was added/compiler-rt/trunk/test/msan/cxa_atexit_race.cccompiler-rt.src/test/msan/cxa_atexit_race.cc
Revision 354004 by yaxunl:
[CUDA][HIP] Use device side kernel and variable names when registering them

__hipRegisterFunction and __hipRegisterVar need to accept device side kernel and variable names
so that HIP runtime can associate kernel stub functions in host code with kernel symbols in fat binaries,
and associate shadow variables in host code with device variables in fat binaries.

Currently, clang assumes kernel functions and device variables have the same name as the kernel
stub functions and shadow variables. However, when host is compiled in windows with MSVC C++
ABI and device is compiled with Itanium C++ ABI (e.g. AMDGPU), kernels and device symbols in fat
binary are mangled differently than host.

This patch gets the device side kernel and variable name by mangling them in the mangle context
of aux target.

Differential Revision: https://reviews.llvm.org/D58163
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/ASTContext.h (diff)clang.src/include/clang/AST/ASTContext.h
The file was modified/cfe/trunk/lib/AST/ASTContext.cpp (diff)clang.src/lib/AST/ASTContext.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGCUDANV.cpp (diff)clang.src/lib/CodeGen/CGCUDANV.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGCUDARuntime.h (diff)clang.src/lib/CodeGen/CGCUDARuntime.h
The file was modified/cfe/trunk/lib/CodeGen/CodeGenModule.cpp (diff)clang.src/lib/CodeGen/CodeGenModule.cpp
The file was modified/cfe/trunk/test/CodeGenCUDA/device-stub.cu (diff)clang.src/test/CodeGenCUDA/device-stub.cu
Revision 354003 by ctopper:
[X86] Make (f80 (sint_to_fp (i16))) use fistps/fisttps instead of fistpl/fisttpl when SSE is enabled.

When SSE is enabled sint_to_fp with i16 is blindly promoted to i32, but that changes the behavior of f80 conversion.

Move the promotion to i16 to LowerFP_TO_INT so we can limit it based on the floating point type.
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
The file was modified/llvm/trunk/test/CodeGen/X86/fp-cvt.ll (diff)llvm.src/test/CodeGen/X86/fp-cvt.ll
Revision 354002 by ormris:
Revert "[llvm-objdump] Allow short options without arguments to be grouped"

Reverted due to failures on the llvm-hexagon-elf.

This reverts commit 77e1f27476c89f65eeb496d131065177e6417f23.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-objdump/X86/disasm-specific-funcs.test (diff)llvm.src/test/tools/llvm-objdump/X86/disasm-specific-funcs.test
The file was removed/llvm/trunk/test/tools/llvm-objdump/option-grouping.testllvm.src/test/tools/llvm-objdump/option-grouping.test
The file was modified/llvm/trunk/tools/llvm-objdump/MachODump.cpp (diff)llvm.src/tools/llvm-objdump/MachODump.cpp
The file was modified/llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp (diff)llvm.src/tools/llvm-objdump/llvm-objdump.cpp
Revision 354001 by dyung:
Relax restriction in tests to where "-emit-llvm-bc" and "-emit-obj" must appear.

The CHECK lines as structured were requiring them to appear only in a certain
position while all that is really needed is to check that they are present.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/Driver/hip-toolchain-no-rdc.hip (diff)clang.src/test/Driver/hip-toolchain-no-rdc.hip
The file was modified/cfe/trunk/test/Driver/hip-toolchain-rdc.hip (diff)clang.src/test/Driver/hip-toolchain-rdc.hip
The file was modified/cfe/trunk/test/Driver/openmp-offload.c (diff)clang.src/test/Driver/openmp-offload.c
Revision 354000 by kcc:
[libFuzzer] trying to fix the bot (can't reproduce the build failure locally)
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerFork.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerFork.cpp
Revision 353999 by leonardchan:
Fix for asan bots
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/BackendUtil.cpp (diff)clang.src/lib/CodeGen/BackendUtil.cpp
Revision 353998 by ormris:
[llvm-objdump] Allow short options without arguments to be grouped

Summary:

https://bugs.llvm.org/show_bug.cgi?id=31679

Reviewers: kristina, jhenderson, grimar, jakehehrlich, rupprecht

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D57904
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-objdump/X86/disasm-specific-funcs.test (diff)llvm.src/test/tools/llvm-objdump/X86/disasm-specific-funcs.test
The file was added/llvm/trunk/test/tools/llvm-objdump/option-grouping.testllvm.src/test/tools/llvm-objdump/option-grouping.test
The file was modified/llvm/trunk/tools/llvm-objdump/MachODump.cpp (diff)llvm.src/tools/llvm-objdump/MachODump.cpp
The file was modified/llvm/trunk/tools/llvm-objdump/llvm-objdump.cpp (diff)llvm.src/tools/llvm-objdump/llvm-objdump.cpp
Revision 353997 by kcc:
[libFuzzer] add threads to the fork mode: now you can pass -fork=N to run N concurrent workers. Fork mode is still work-in-progress.
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/FuzzerFork.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerFork.cpp
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerFork.h (diff)compiler-rt.src/lib/fuzzer/FuzzerFork.h
Revision 353996 by dsanders:
[globalisel][combine] Split existing rules into a match and apply step

Summary:
The declarative tablegen definitions split rules into match and apply steps.
Prepare for that by doing the same in the C++ implementations. This aids
some of the migration effort while the tablegen version is incomplete.

Reviewers: bogner, volkan, aditya_nandakumar, paquette, aemerson

Reviewed By: aditya_nandakumar

Subscribers: rovka, kristof.beyls, Petar.Avramovic, jdoerfert, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D58150
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/CombinerHelper.h (diff)llvm.src/include/llvm/CodeGen/GlobalISel/CombinerHelper.h
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/CombinerHelper.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/CombinerHelper.cpp
Revision 353995 by rupprecht:
[llvm-ar][libObject] Fix relative paths when nesting thin archives.

Summary:
When adding one thin archive to another, we currently chop off the relative path to the flattened members. For instance, when adding `foo/child.a` (which contains `x.txt`) to `parent.a`, when flattening it we should add it as `foo/x.txt` (which exists) instead of `x.txt` (which does not exist).

As a note, this also undoes the `IsNew` parameter of handling relative paths in r288280. The unit test there still passes.

This was reported as part of testing the kernel build with llvm-ar: https://patchwork.kernel.org/patch/10767545/ (see the second point).

Reviewers: mstorsjo, pcc, ruiu, davide, david2050, inglorion

Reviewed By: ruiu

Subscribers: void, jdoerfert, tpimh, mgorny, hans, nickdesaulniers, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D57842
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Object/ArchiveWriter.h (diff)llvm.src/include/llvm/Object/ArchiveWriter.h
The file was modified/llvm/trunk/lib/Object/ArchiveWriter.cpp (diff)llvm.src/lib/Object/ArchiveWriter.cpp
The file was modified/llvm/trunk/lib/ToolDrivers/llvm-lib/CMakeLists.txt (diff)llvm.src/lib/ToolDrivers/llvm-lib/CMakeLists.txt
The file was modified/llvm/trunk/lib/ToolDrivers/llvm-lib/LibDriver.cpp (diff)llvm.src/lib/ToolDrivers/llvm-lib/LibDriver.cpp
The file was added/llvm/trunk/test/tools/llvm-ar/flatten-thin-archive-directories.testllvm.src/test/tools/llvm-ar/flatten-thin-archive-directories.test
The file was modified/llvm/trunk/test/tools/llvm-ar/flatten-thin-archive.test (diff)llvm.src/test/tools/llvm-ar/flatten-thin-archive.test
The file was added/llvm/trunk/test/tools/llvm-lib/thin-relative.testllvm.src/test/tools/llvm-lib/thin-relative.test
The file was modified/llvm/trunk/tools/llvm-ar/llvm-ar.cpp (diff)llvm.src/tools/llvm-ar/llvm-ar.cpp
Revision 353994 by stefanp:
[PowerPC][NFC] Added tests for prologue and epilogue code gen.

Added four test files to check the existing behaviour of prologue
and epilogue code generation. This patch was done as a setup for
the upcoming patch listed on Phabricator that will change how the
prologue and epilogue work.
The upcoming patch is: https://reviews.llvm.org/D42590
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/CodeGen/PowerPC/CSR-fit.llllvm.src/test/CodeGen/PowerPC/CSR-fit.ll
The file was added/llvm/trunk/test/CodeGen/PowerPC/larger-than-red-zone.llllvm.src/test/CodeGen/PowerPC/larger-than-red-zone.ll
The file was added/llvm/trunk/test/CodeGen/PowerPC/not-fixed-frame-object.llllvm.src/test/CodeGen/PowerPC/not-fixed-frame-object.ll
The file was added/llvm/trunk/test/CodeGen/PowerPC/reg-scavenging.llllvm.src/test/CodeGen/PowerPC/reg-scavenging.ll
Revision 353992 by spatel:
[ConstProp] add IR tests to show miscompiles; NFC

A fix for these is proposed in D51216.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/ConstProp/bitcast.ll (diff)llvm.src/test/Transforms/ConstProp/bitcast.ll
Revision 353991 by maskray:
[llvm-readobj] Dump GNU_PROPERTY_X86_ISA_1_{NEEDED,USED} notes in .note.gnu.property

Reviewers: grimar, rupprecht

Reviewed By: rupprecht

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D58175
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/BinaryFormat/ELF.h (diff)llvm.src/include/llvm/BinaryFormat/ELF.h
The file was modified/llvm/trunk/test/tools/llvm-readobj/note-gnu-property.s (diff)llvm.src/test/tools/llvm-readobj/note-gnu-property.s
The file was modified/llvm/trunk/tools/llvm-readobj/ELFDumper.cpp (diff)llvm.src/tools/llvm-readobj/ELFDumper.cpp
Revision 353990 by hctim:
[HWASAN] Updated HWASAN design document to better portray the chance of missing a bug.

Summary: Provided rule of thumb percentage chances of miss for 4 and 8 bit tag sizes.

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D58195
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/docs/HardwareAssistedAddressSanitizerDesign.rst (diff)clang.src/docs/HardwareAssistedAddressSanitizerDesign.rst
Revision 353989 by reames:
[SelectionDAG] Inline a single use helper function, and remove last non-MMO interface [NFC]

For D57601, we need to know whether the instruction is volatile.  We'd either have to pass yet another parameter, or just standardize on the MMO interface.  I chose the second.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/SelectionDAG.h (diff)llvm.src/include/llvm/CodeGen/SelectionDAG.h
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
Revision 353988 by rudkx:
[RegAllocGreedy] Take last chance recoloring into account in evicting.

Last chance recoloring inserts into FixedRegisters those virtual
registers it is attempting to assign a physical register to.

We must consider these when we consider candidates for eviction so that
we do not end up evicting something while we are attempting to recolor
to assign it.

This is hitting in an out-of-tree target and no longer reproduces on
trunk. That does not appear to be a result of it having been fixed, but
rather, it appears that optimization changes and/or other changes to
register allocation mask the problem.

I haven't found a way to come up with a reasonable test case for this
(i.e. one that I can actually commit to open source, is reasonable
in size, and actually reproduces the issue).

rdar://problem/45708741
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/RegAllocGreedy.cpp (diff)llvm.src/lib/CodeGen/RegAllocGreedy.cpp
Revision 353987 by dylanmckay:
[AVR] Fix a typo - 's/analisys/analysis'
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AVR/AVRISelLowering.cpp (diff)llvm.src/lib/Target/AVR/AVRISelLowering.cpp
Revision 353986 by tlively:
[WebAssembly] memory.fill

Summary:
memset lowering, fix argument types in memcpy lowering, and
test encodings. Depends on D57736.

Reviewers: aheejin

Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D57791
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyISD.def (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyISD.def
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyInstrBulkMemory.td (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyInstrBulkMemory.td
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblySelectionDAGInfo.cpp (diff)llvm.src/lib/Target/WebAssembly/WebAssemblySelectionDAGInfo.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblySelectionDAGInfo.h (diff)llvm.src/lib/Target/WebAssembly/WebAssemblySelectionDAGInfo.h
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/bulk-memory.ll (diff)llvm.src/test/CodeGen/WebAssembly/bulk-memory.ll
The file was added/llvm/trunk/test/MC/WebAssembly/bulk-memory-encodings.sllvm.src/test/MC/WebAssembly/bulk-memory-encodings.s
Revision 353985 by leonardchan:
[NewPM] Second attempt at porting ASan

This is the second attempt to port ASan to new PM after D52739. This takes the
initialization requried by ASan from the Module by moving it into a separate
class with it's own analysis that the new PM ASan can use.

Changes:
- Split AddressSanitizer into 2 passes: 1 for the instrumentation on the
  function, and 1 for the pass itself which creates an instance of the first
  during it's run. The same is done for AddressSanitizerModule.
- Add new PM AddressSanitizer and AddressSanitizerModule.
- Add legacy and new PM analyses for reading data needed to initialize ASan with.
- Removed DominatorTree dependency from ASan since it was unused.
- Move GlobalsMetadata and ShadowMapping out of anonymous namespace since the
  new PM analysis holds these 2 classes and will need to expose them.

Differential Revision: https://reviews.llvm.org/D56470
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/BackendUtil.cpp (diff)clang.src/lib/CodeGen/BackendUtil.cpp
The file was added/cfe/trunk/test/CodeGen/asan-new-pm.llclang.src/test/CodeGen/asan-new-pm.ll
The file was modified/llvm/trunk/bindings/go/llvm/InstrumentationBindings.cpp (diff)llvm.src/bindings/go/llvm/InstrumentationBindings.cpp
The file was modified/llvm/trunk/include/llvm/InitializePasses.h (diff)llvm.src/include/llvm/InitializePasses.h
The file was modified/llvm/trunk/include/llvm/Transforms/Instrumentation.h (diff)llvm.src/include/llvm/Transforms/Instrumentation.h
The file was added/llvm/trunk/include/llvm/Transforms/Instrumentation/AddressSanitizer.hllvm.src/include/llvm/Transforms/Instrumentation/AddressSanitizer.h
The file was modified/llvm/trunk/lib/Passes/PassBuilder.cpp (diff)llvm.src/lib/Passes/PassBuilder.cpp
The file was modified/llvm/trunk/lib/Passes/PassRegistry.def (diff)llvm.src/lib/Passes/PassRegistry.def
The file was modified/llvm/trunk/lib/Transforms/Instrumentation/AddressSanitizer.cpp (diff)llvm.src/lib/Transforms/Instrumentation/AddressSanitizer.cpp
The file was modified/llvm/trunk/lib/Transforms/Instrumentation/Instrumentation.cpp (diff)llvm.src/lib/Transforms/Instrumentation/Instrumentation.cpp
The file was modified/llvm/trunk/test/Instrumentation/AddressSanitizer/basic.ll (diff)llvm.src/test/Instrumentation/AddressSanitizer/basic.ll
Revision 353984 by codafi:
Restore Check for Unreachable Exit Block in -Winfinite-recursion

Summary:
When this was rewritten in D43737, the logic changed to better explore infinite loops. The check for a reachable exit block was deleted which accidentally introduced false positives in case the exit node was unreachable.

We were testing for cases like this, but @steven_wu provided an additional test case that I've included in the regression tests for this patch.

Reviewers: steven_wu, rtrieu

Reviewed By: steven_wu, rtrieu

Subscribers: cfe-commits, steven_wu

Tags: #clang

Differential Revision: https://reviews.llvm.org/D58122
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/AnalysisBasedWarnings.cpp (diff)clang.src/lib/Sema/AnalysisBasedWarnings.cpp
The file was modified/cfe/trunk/test/SemaCXX/warn-infinite-recursion.cpp (diff)clang.src/test/SemaCXX/warn-infinite-recursion.cpp
Revision 353983 by tlively:
[WebAssembly] Bulk memory intrinsics and builtins

Summary:
implements llvm intrinsics and clang intrinsics for
memory.init and data.drop.

Reviewers: aheejin

Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, sunfish, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D57736
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/BuiltinsWebAssembly.def (diff)clang.src/include/clang/Basic/BuiltinsWebAssembly.def
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cpp (diff)clang.src/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/test/CodeGen/builtins-wasm.c (diff)clang.src/test/CodeGen/builtins-wasm.c
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicsWebAssembly.td (diff)llvm.src/include/llvm/IR/IntrinsicsWebAssembly.td
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyInstrBulkMemory.td (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyInstrBulkMemory.td
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblySelectionDAGInfo.cpp (diff)llvm.src/lib/Target/WebAssembly/WebAssemblySelectionDAGInfo.cpp
The file was added/llvm/trunk/test/CodeGen/WebAssembly/bulk-memory-intrinsics.llllvm.src/test/CodeGen/WebAssembly/bulk-memory-intrinsics.ll
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/bulk-memory.ll (diff)llvm.src/test/CodeGen/WebAssembly/bulk-memory.ll
Revision 353982 by serge_sans_paille:
Revert r353962

Specialization of Optional for trivially copyable types yields failure on the buildbots I fail to reproduce locally.
Better safe than sorry, reverting.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ADT/Optional.h (diff)llvm.src/include/llvm/ADT/Optional.h
The file was modified/llvm/trunk/unittests/ADT/OptionalTest.cpp (diff)llvm.src/unittests/ADT/OptionalTest.cpp
Revision 353980 by pcc:
gn build: Merge r353957.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/llvm/lib/Target/AArch64/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/lib/Target/AArch64/BUILD.gn
Revision 353977 by reames:
[SelectionDAG] Kill last uses of getAtomic w/o a MMO operand [NFC]

The helper function was used by only two callers, and largely ended up providing distinct functionality based on optional arguments and opcode.  Inline and simply to make the functionality much more clear.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/SelectionDAG.h (diff)llvm.src/include/llvm/CodeGen/SelectionDAG.h
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAG.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAG.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
Revision 353976 by epilk:
[Sema] Delay checking whether objc_designated_initializer is being applied to an init method

This fixes a regression that was caused by r335084, which reversed
the order that attributes are applied. objc_method_family can change
whether a method is an init method, so the order that these
attributes are applied matters. The commit fixes this by delaying the
init check until after all attributes have been applied.

rdar://47829358

Differential revision: https://reviews.llvm.org/D58152
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/DiagnosticSemaKinds.td (diff)clang.src/include/clang/Basic/DiagnosticSemaKinds.td
The file was modified/cfe/trunk/lib/Sema/SemaDeclAttr.cpp (diff)clang.src/lib/Sema/SemaDeclAttr.cpp
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 modified/cfe/trunk/test/SemaObjC/attr-designated-init.m (diff)clang.src/test/SemaObjC/attr-designated-init.m
Revision 353975 by hubert.reinterpretcast:
[PowerPC] Stop defining _ARCH_PWR6X on POWER7 and up

Summary:
The predefined macro `_ARCH_PWR6X` is associated with GCC's
`-mcpu=power6x` option, which enables generation of P6 "raw mode"
instructions such as `mftgpr`.

Later POWER processors build upon the "architected mode", not the raw
one. `_ARCH_PWR6X` should not be defined for these later processors.

Fixes PR#40236.

Reviewers: echristo, hfinkel, kbarton, nemanjai, wschmidt

Reviewed By: hfinkel

Subscribers: jsji, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D58128
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Basic/Targets/PPC.h (diff)clang.src/lib/Basic/Targets/PPC.h
The file was modified/cfe/trunk/test/Preprocessor/init.c (diff)clang.src/test/Preprocessor/init.c
Revision 353974 by ctopper:
[X86] Add 'mpx' to getHostCPUFeatures.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Support/Host.cpp (diff)llvm.src/lib/Support/Host.cpp
Revision 353973 by Vedant Kumar:
[CodeExtractor] Only lift lifetime markers present in the extraction region

When CodeExtractor finds liftime markers referencing inputs to the
extraction region, it lifts these markers out of the region and inserts
them around the call to the extracted function (see r350420, PR39671).

However, it should *only* lift lifetime markers that are actually
present in the extraction region. I.e., if a start marker is present in
the extraction region but a corresponding end marker isn't (or vice
versa), only the start marker (or end marker, resp.) should be lifted.

Differential Revision: https://reviews.llvm.org/D57834
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Utils/CodeExtractor.cpp (diff)llvm.src/lib/Transforms/Utils/CodeExtractor.cpp
The file was added/llvm/trunk/test/Transforms/HotColdSplit/lifetime-markers-on-inputs-1.llllvm.src/test/Transforms/HotColdSplit/lifetime-markers-on-inputs-1.ll
The file was added/llvm/trunk/test/Transforms/HotColdSplit/lifetime-markers-on-inputs-2.llllvm.src/test/Transforms/HotColdSplit/lifetime-markers-on-inputs-2.ll
The file was removed/llvm/trunk/test/Transforms/HotColdSplit/lifetime-markers-on-inputs.llllvm.src/test/Transforms/HotColdSplit/lifetime-markers-on-inputs.ll
Revision 353972 by reames:
[Tests] More unordered atomic lowering tests

This time, focused around narrowing and widening transformations.  Also, include a few simple memory optimization tests to highlight missed oppurtunities.  This is part of building up the test base for D57601.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/atomic-unordered.ll (diff)llvm.src/test/CodeGen/X86/atomic-unordered.ll
Revision 353970 by Louis Dionne:
[clang] Make sure C99/C11 features in <float.h> are provided in C++11

Summary:
Previously, those #defines were only provided in C or when GNU extensions were
enabled. We need those #defines in C++11 and above, too.

Reviewers: jfb, eli.friedman

Subscribers: jkorous, dexonsmith, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D58149
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Headers/float.h (diff)clang.src/lib/Headers/float.h
The file was modified/cfe/trunk/test/Headers/float.c (diff)clang.src/test/Headers/float.c
Revision 353969 by nico:
Re-enable the test disabled in r353836 and hopefully make it pass in gcc builds

Argument evaluation order is different between gcc and clang, so pull out
the Builder calls to make the generated IR independent of the host compiler's
argument evaluation order.  Thanks to rnk for reminding me of this clang/gcc
difference.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cpp (diff)clang.src/lib/CodeGen/CGBuiltin.cpp
The file was modified/cfe/trunk/test/CodeGen/ms-x86-intrinsics.c (diff)clang.src/test/CodeGen/ms-x86-intrinsics.c
Revision 353966 by reames:
[Tests] RMW folding tests w/unordered atomic operations

We get a suprising number of these today actually, but some are missed. The main point of this is strengthen the test set for D57601.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/atomic-unordered.ll (diff)llvm.src/test/CodeGen/X86/atomic-unordered.ll
Revision 353965 by atanasyan:
[Headers][mips] Add `__attribute__((__mode__(__unwind_word__)))` to the _Unwind_Word / _Unwind_SWord definitions

The rationale of this change is to fix _Unwind_Word / _Unwind_SWord
definitions for MIPS N32 ABI. This ABI uses 32-bit pointers,
but _Unwind_Word and _Unwind_SWord types are eight bytes long.

# The __attribute__((__mode__(__unwind_word__))) is added to the type
   definitions. It makes them equal to the corresponding definitions used
   by GCC and allows to override types using `getUnwindWordWidth` function.
# The `getUnwindWordWidth` virtual function override in the `MipsTargetInfo`
   class and provides correct type size values.

Differential revision: https://reviews.llvm.org/D58165
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Basic/Targets/Mips.cpp (diff)clang.src/lib/Basic/Targets/Mips.cpp
The file was modified/cfe/trunk/lib/Basic/Targets/Mips.h (diff)clang.src/lib/Basic/Targets/Mips.h
The file was modified/cfe/trunk/lib/Headers/unwind.h (diff)clang.src/lib/Headers/unwind.h
The file was modified/cfe/trunk/test/Sema/attr-mode.c (diff)clang.src/test/Sema/attr-mode.c
Revision 353964 by reames:
[Tests] Add a bunch of tests for load folding w/unordered atomics
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/atomic-unordered.ll (diff)llvm.src/test/CodeGen/X86/atomic-unordered.ll
Revision 353963 by ctopper:
[X86] Add 'fxsr' to the getHostCPUFeatures detection code.

We implicitly mark this feature as enabled when the target is 64-bits, but our detection code for -march=native didn't support it so you can't detect it on 32-bit targets.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Support/Host.cpp (diff)llvm.src/lib/Support/Host.cpp
Revision 353962 by serge_sans_paille:
Re-commit rL353927, patch included

Make llvm::Optional<T> trivially copyable when T is trivially copyable

This is an ever-recurring issue (see https://bugs.llvm.org/show_bug.cgi?id=39427 and https://bugs.llvm.org/show_bug.cgi?id=35978)
but I believe that thanks to https://reviews.llvm.org/D54472 we can now ship a decent implementation of this.

Basically the fact that llvm::is_trivially_copyable has a consistent behavior across compilers should prevent any ABI issue,
and using in-place new instead of memcpy should keep compiler bugs away.

This patch is slightly different from the original revision https://reviews.llvm.org/rL353927 but achieves the same goal. It just avoids
going through std::conditional which may the code more explicit.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ADT/Optional.h (diff)llvm.src/include/llvm/ADT/Optional.h
The file was modified/llvm/trunk/unittests/ADT/OptionalTest.cpp (diff)llvm.src/unittests/ADT/OptionalTest.cpp
Revision 353960 by phosek:
[Driver] Pass +reserve-x25 to backend if -ffixed-x25 is specified

This was accidentally omitted in r353957 breaking the Clang test.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChains/Arch/AArch64.cpp (diff)clang.src/lib/Driver/ToolChains/Arch/AArch64.cpp
Revision 353959 by reames:
[Tests] First batch of cornercase tests for unordered atomics

Mixture of things we legally can't do, and things we're missing.  Once D57601 is in, the later will serve as a punch list.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/atomic-unordered.ll (diff)llvm.src/test/CodeGen/X86/atomic-unordered.ll
Revision 353958 by reames:
[Tests] Auto update a test
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/atomic-add.ll (diff)llvm.src/test/CodeGen/X86/atomic-add.ll
Revision 353957 by phosek:
[AArch64] Support reserving arbitrary general purpose registers

This is a follow up to D48580 and D48581 which allows reserving
arbitrary general purpose registers with the exception of registers
with special purpose (X8, X16-X18, X29, X30) and registers used by LLVM
(X0, X19). This change also generalizes some of the existing logic to
rely entirely on values generated from tablegen.

Differential Revision: https://reviews.llvm.org/D56305
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/lib/Driver/ToolChains/Arch/AArch64.cpp (diff)clang.src/lib/Driver/ToolChains/Arch/AArch64.cpp
The file was modified/cfe/trunk/test/Driver/aarch64-fixed-x-register.c (diff)clang.src/test/Driver/aarch64-fixed-x-register.c
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64.td (diff)llvm.src/lib/Target/AArch64/AArch64.td
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cpp (diff)llvm.src/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64RegisterBankInfo.cpp (diff)llvm.src/lib/Target/AArch64/AArch64RegisterBankInfo.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64RegisterInfo.cpp (diff)llvm.src/lib/Target/AArch64/AArch64RegisterInfo.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64RegisterInfo.td (diff)llvm.src/lib/Target/AArch64/AArch64RegisterInfo.td
The file was modified/llvm/trunk/test/CodeGen/AArch64/arm64-platform-reg.ll (diff)llvm.src/test/CodeGen/AArch64/arm64-platform-reg.ll
The file was modified/llvm/trunk/test/CodeGen/AArch64/arm64-reserve-call-saved-reg.ll (diff)llvm.src/test/CodeGen/AArch64/arm64-reserve-call-saved-reg.ll
Revision 353956 by reames:
[Tests] Rename some test files for consistency

Most are named "atomic-something" so rename the few which were "atomic_something".  I keep typing the wrong name due to the inconsistency.  :)
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/CodeGen/X86/atomic-add.llllvm.src/test/CodeGen/X86/atomic-add.ll
The file was added/llvm/trunk/test/CodeGen/X86/atomic-idempotent.llllvm.src/test/CodeGen/X86/atomic-idempotent.ll
The file was added/llvm/trunk/test/CodeGen/X86/atomic-mi.llllvm.src/test/CodeGen/X86/atomic-mi.ll
The file was added/llvm/trunk/test/CodeGen/X86/atomic-op.llllvm.src/test/CodeGen/X86/atomic-op.ll
The file was removed/llvm/trunk/test/CodeGen/X86/atomic_add.llllvm.src/test/CodeGen/X86/atomic_add.ll
The file was removed/llvm/trunk/test/CodeGen/X86/atomic_idempotent.llllvm.src/test/CodeGen/X86/atomic_idempotent.ll
The file was removed/llvm/trunk/test/CodeGen/X86/atomic_mi.llllvm.src/test/CodeGen/X86/atomic_mi.ll
The file was removed/llvm/trunk/test/CodeGen/X86/atomic_op.llllvm.src/test/CodeGen/X86/atomic_op.ll
Revision 353955 by Louis Dionne:
[libcxx] Do not assume the number of elements in a moved-from associative container

Reviewed as https://reviews.llvm.org/D57903.
Thanks to Andrey Maksimov for the patch.
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/test/std/containers/associative/map/map.cons/move_alloc.pass.cpp (diff)libcxx.src/test/std/containers/associative/map/map.cons/move_alloc.pass.cpp
The file was modified/libcxx/trunk/test/std/containers/associative/multimap/multimap.cons/move_alloc.pass.cpp (diff)libcxx.src/test/std/containers/associative/multimap/multimap.cons/move_alloc.pass.cpp
The file was modified/libcxx/trunk/test/std/containers/associative/multiset/multiset.cons/move_alloc.pass.cpp (diff)libcxx.src/test/std/containers/associative/multiset/multiset.cons/move_alloc.pass.cpp
The file was modified/libcxx/trunk/test/std/containers/associative/set/set.cons/move_alloc.pass.cpp (diff)libcxx.src/test/std/containers/associative/set/set.cons/move_alloc.pass.cpp
Revision 353954 by jmorse:
[DebugInfo][DAG] Either salvage dangling debug info or emit Undef DBG_VALUEs

In this patch SelectionDAG tries to salvage any dbg.values that are going to be
dropped, in case they can be recovered from Values in the current BB. It also
strengthens SelectionDAGs handling of dangling debug data, so that dbg.values
are *always* emitted (as Undef or otherwise) instead of dangling forever.

The motivation behind this patch exists in the new test case: a memory address
(here a bitcast and GEP) exist in one basic block, and a dbg.value referring to
the address is left in the 'next' block. The base pointer is live across all
basic blocks. In current llvm trunk the dbg.value cannot be encoded, and it
isn't even emitted as an Undef DBG_VALUE.

The change is simply: if we're definitely going to drop a dbg.value, repeatedly
apply salvageDebugInfo to its operand until either we find something that can
be encoded, or we can't salvage any further in which case we produce an Undef
DBG_VALUE. To know when we're "definitely going to drop a dbg.value",
SelectionDAG signals SelectionDAGBuilder when all IR instructions have been
encoded to force salvaging. This ensures that any dbg.value that's dangling
after DAG creation will have a corresponding DBG_VALUE encoded.

Differential Revision: https://reviews.llvm.org/D57694
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
The file was modified/llvm/trunk/test/DebugInfo/X86/sdag-dangling-dbgvalue.ll (diff)llvm.src/test/DebugInfo/X86/sdag-dangling-dbgvalue.ll
The file was added/llvm/trunk/test/DebugInfo/X86/sdag-ir-salvage.llllvm.src/test/DebugInfo/X86/sdag-ir-salvage.ll
Revision 353953 by rksimon:
[X86][AVX] Add shuffle_v8i32_0dcd3f14 shuffle test case
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-256-v8.ll (diff)llvm.src/test/CodeGen/X86/vector-shuffle-256-v8.ll
Revision 353952 by aaronenyeshi:
[HIP] Handle compile -m options and propagate into LLC

Allow the compile options for -m such as -mxnack/-mno-xnack, -msram-ecc/-mno-sram-ecc, -mcode-object-v3/-mno-code-object-v3 to propagate into LLC args. Fix an issue where -mattr was pushed even when it was empty.

Also add lit tests to verify features are properly passed.

Differential Revision: https://reviews.llvm.org/D57977

Reviewers: yaxunl, kzhuravl
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChains/HIP.cpp (diff)clang.src/lib/Driver/ToolChains/HIP.cpp
The file was added/cfe/trunk/test/Driver/hip-toolchain-features.hipclang.src/test/Driver/hip-toolchain-features.hip
Revision 353951 by maskray:
[llvm-readobj] Rename pr_data to PrData

As requested by grimar in D58112.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-readobj/ELFDumper.cpp (diff)llvm.src/tools/llvm-readobj/ELFDumper.cpp
Revision 353950 by jmorse:
[DebugInfo][DAG] Refactor dbg.value lowering into its own method

This is a pure copy-and-paste job, moving the logic for lowering dbg.value
intrinsics to SDDbgValues into its own function. This is ahead of adding some
more users of this logic.

Differential Revision: https://reviews.llvm.org/D57697
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
Revision 353949 by adibiagio:
[MCA] Store a bitmask of used groups in the instruction descriptor.

This is to speedup 'checkAvailability' queries in class ResourceManager.
No functional change intended.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/MCA/HardwareUnits/ResourceManager.h (diff)llvm.src/include/llvm/MCA/HardwareUnits/ResourceManager.h
The file was modified/llvm/trunk/include/llvm/MCA/Instruction.h (diff)llvm.src/include/llvm/MCA/Instruction.h
The file was modified/llvm/trunk/lib/MCA/HardwareUnits/ResourceManager.cpp (diff)llvm.src/lib/MCA/HardwareUnits/ResourceManager.cpp
The file was modified/llvm/trunk/lib/MCA/InstrBuilder.cpp (diff)llvm.src/lib/MCA/InstrBuilder.cpp
Revision 353948 by jmorse:
[DebugInfo][DAG] Limit special-casing of dbg.values for Arguments

SelectionDAGBuilder has special handling for dbg.value intrinsics that are
understood to define the location of function parameters on entry to the
function. To enable this, we avoid recording a dbg.value as a virtual register
reference if it might be such a parameter, so that it later hits
EmitFuncArgumentDbgValue.

This patch reduces the set of circumstances where we avoid recording a
dbg.value as a virtual register reference, to allow more "normal" variables
to be recorded that way. We now only bypass for potential parameters if:
* The dbg.value operand is an Argument,
* The Variable is a parameter, and
* The Variable is not inlined.
meaning it's very likely that the dbg.value is a function-entry parameter
location.

Differential Revision: https://reviews.llvm.org/D57584
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was added/llvm/trunk/test/DebugInfo/X86/dbg-value-arg-movement.llllvm.src/test/DebugInfo/X86/dbg-value-arg-movement.ll
Revision 353947 by dvyukov:
tsan: add fiber support

This patch adds functions for managing fibers:

__tsan_get_current_fiber()
__tsan_create_fiber()
__tsan_destroy_fiber()
__tsan_switch_to_fiber()
__tsan_set_fiber_name()

See the added tests for use examples.

Author: yuri (Yuri Per)
Reviewed in: https://reviews.llvm.org/D54889

[The previous commit of this change was reverted,
this is a resubmit with a squashed fix for check_analyze.sh
and COMMON_INTERCEPTOR_NOTHING_IS_INITIALIZED]
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/include/sanitizer/tsan_interface.h (diff)compiler-rt.src/include/sanitizer/tsan_interface.h
The file was modified/compiler-rt/trunk/lib/sanitizer_common/sanitizer_thread_registry.h (diff)compiler-rt.src/lib/sanitizer_common/sanitizer_thread_registry.h
The file was modified/compiler-rt/trunk/lib/tsan/check_analyze.sh (diff)compiler-rt.src/lib/tsan/check_analyze.sh
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_interceptors.cc (diff)compiler-rt.src/lib/tsan/rtl/tsan_interceptors.cc
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_interceptors.h (diff)compiler-rt.src/lib/tsan/rtl/tsan_interceptors.h
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_interface.cc (diff)compiler-rt.src/lib/tsan/rtl/tsan_interface.cc
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.h (diff)compiler-rt.src/lib/tsan/rtl/tsan_rtl.h
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_thread.cc (diff)compiler-rt.src/lib/tsan/rtl/tsan_rtl_thread.cc
The file was added/compiler-rt/trunk/test/tsan/fiber_asm.cccompiler-rt.src/test/tsan/fiber_asm.cc
The file was added/compiler-rt/trunk/test/tsan/fiber_from_thread.cccompiler-rt.src/test/tsan/fiber_from_thread.cc
The file was added/compiler-rt/trunk/test/tsan/fiber_longjmp.cccompiler-rt.src/test/tsan/fiber_longjmp.cc
The file was added/compiler-rt/trunk/test/tsan/fiber_race.cccompiler-rt.src/test/tsan/fiber_race.cc
The file was added/compiler-rt/trunk/test/tsan/fiber_simple.cccompiler-rt.src/test/tsan/fiber_simple.cc
The file was added/compiler-rt/trunk/test/tsan/fiber_two_threads.cccompiler-rt.src/test/tsan/fiber_two_threads.cc
Revision 353946 by mstorsjo:
[test] Tweak driver test from r353917 and r353922 to pass with a nondefault CLANG_DEFAULT_LINKER

Force -fuse-ld=ld, as some other tests in the same file do.

Loosen the regex matching the linker tool name as well, as this
can end up being <triple>-ld in case such a named tool exists.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/Driver/instrprof-ld.c (diff)clang.src/test/Driver/instrprof-ld.c
Revision 353943 by baloghadamsoftware:
[Analyzer] Crash fix for FindLastStoreBRVisitor

FindLastStoreBRVisitor tries to find the first node in the exploded graph where
the current value was assigned to a region. This node is called the "store
site". It is identified by a pair of Pred and Succ nodes where Succ already has
the binding for the value while Pred does not have it. However the visitor
mistakenly identifies a node pair as the store site where the value is a
`LazyCompoundVal` and `Pred` does not have a store yet but `Succ` has it. In
this case the `LazyCompoundVal` is different in the `Pred` node because it also
contains the store which is different in the two nodes. This error may lead to
crashes (a declaration is cast to a parameter declaration without check) or
misleading bug path notes.

In this patch we fix this problem by checking for unequal `LazyCompoundVals`: if
their region is equal, and their store is the same as the store of their nodes
we consider them as equal when looking for the "store site". This is an
approximation because we do not check for differences of the subvalues
(structure members or array elements) in the stores.

Differential Revision: https://reviews.llvm.org/D58067
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp (diff)clang.src/lib/StaticAnalyzer/Core/BugReporterVisitors.cpp
The file was added/cfe/trunk/test/Analysis/PR40625.cppclang.src/test/Analysis/PR40625.cpp
The file was modified/cfe/trunk/test/Analysis/uninit-vals.m (diff)clang.src/test/Analysis/uninit-vals.m
Revision 353942 by rovka:
Revert "tsan: update check_analyze.sh"

This reverts commit r353820, to go with the revert of r353817.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/tsan/check_analyze.sh (diff)compiler-rt.src/lib/tsan/check_analyze.sh
Revision 353941 by mkazantsev:
[NFC] Add const qualifiers where possible
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/GuardWidening.cpp (diff)llvm.src/lib/Transforms/Scalar/GuardWidening.cpp
Revision 353940 by serge_sans_paille:
Revert r353927
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ADT/Optional.h (diff)llvm.src/include/llvm/ADT/Optional.h
The file was modified/llvm/trunk/unittests/ADT/OptionalTest.cpp (diff)llvm.src/unittests/ADT/OptionalTest.cpp
Revision 353939 by rovka:
Revert "tsan: add fiber support"

This reverts commit r353817 because we think it broke AARch64 and
PowerPC buildbots.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/include/sanitizer/tsan_interface.h (diff)compiler-rt.src/include/sanitizer/tsan_interface.h
The file was modified/compiler-rt/trunk/lib/sanitizer_common/sanitizer_thread_registry.h (diff)compiler-rt.src/lib/sanitizer_common/sanitizer_thread_registry.h
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_interceptors.cc (diff)compiler-rt.src/lib/tsan/rtl/tsan_interceptors.cc
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_interceptors.h (diff)compiler-rt.src/lib/tsan/rtl/tsan_interceptors.h
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_interface.cc (diff)compiler-rt.src/lib/tsan/rtl/tsan_interface.cc
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl.h (diff)compiler-rt.src/lib/tsan/rtl/tsan_rtl.h
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_thread.cc (diff)compiler-rt.src/lib/tsan/rtl/tsan_rtl_thread.cc
The file was removed/compiler-rt/trunk/test/tsan/fiber_asm.cccompiler-rt.src/test/tsan/fiber_asm.cc
The file was removed/compiler-rt/trunk/test/tsan/fiber_from_thread.cccompiler-rt.src/test/tsan/fiber_from_thread.cc
The file was removed/compiler-rt/trunk/test/tsan/fiber_longjmp.cccompiler-rt.src/test/tsan/fiber_longjmp.cc
The file was removed/compiler-rt/trunk/test/tsan/fiber_race.cccompiler-rt.src/test/tsan/fiber_race.cc
The file was removed/compiler-rt/trunk/test/tsan/fiber_simple.cccompiler-rt.src/test/tsan/fiber_simple.cc
The file was removed/compiler-rt/trunk/test/tsan/fiber_two_threads.cccompiler-rt.src/test/tsan/fiber_two_threads.cc
Revision 353938 by rovka:
[ARM GlobalISel] Support G_SELECT for Thumb2

Same as arm mode, but slightly different opcodes.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstructionSelector.cpp (diff)llvm.src/lib/Target/ARM/ARMInstructionSelector.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMLegalizerInfo.cpp (diff)llvm.src/lib/Target/ARM/ARMLegalizerInfo.cpp
The file was added/llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-legalize-select.mirllvm.src/test/CodeGen/ARM/GlobalISel/arm-legalize-select.mir
The file was modified/llvm/trunk/test/CodeGen/ARM/GlobalISel/arm-legalizer.mir (diff)llvm.src/test/CodeGen/ARM/GlobalISel/arm-legalizer.mir
The file was added/llvm/trunk/test/CodeGen/ARM/GlobalISel/thumb-select-select.mirllvm.src/test/CodeGen/ARM/GlobalISel/thumb-select-select.mir
Revision 353937 by adibiagio:
[MCA][Scheduler] Use latency information to further classify busy instructions.

This patch introduces a new instruction stage named 'IS_PENDING'.
An instruction transitions from the IS_DISPATCHED to the IS_PENDING stage if
input registers are not available, but their latency is known.

This patch also adds a new set of instructions named 'PendingSet' to class
Scheduler. The idea is that the PendingSet will only contain instructions that
have reached the IS_PENDING stage.
By construction, an instruction in the PendingSet is only dependent on
instructions that have already reached the execution stage. The plan is to use
this knowledge to identify bottlenecks caused by data dependencies (see
PR37494).

Differential Revision: https://reviews.llvm.org/D58066
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/MCA/HardwareUnits/Scheduler.h (diff)llvm.src/include/llvm/MCA/HardwareUnits/Scheduler.h
The file was modified/llvm/trunk/include/llvm/MCA/Instruction.h (diff)llvm.src/include/llvm/MCA/Instruction.h
The file was modified/llvm/trunk/lib/MCA/HardwareUnits/Scheduler.cpp (diff)llvm.src/lib/MCA/HardwareUnits/Scheduler.cpp
The file was modified/llvm/trunk/lib/MCA/Instruction.cpp (diff)llvm.src/lib/MCA/Instruction.cpp
Revision 353936 by jmorse:
[DebugInfo][InstCombine] Prefer to salvage debuginfo over sinking it

When instcombine sinks an instruction between two basic blocks, it sinks any
dbg.value users in the source block with it, to prevent debug use-before-free.
However we can do better by attempting to salvage the debug users, which would
avoid moving where the variable location changes. If we successfully salvage,
still sink a (cloned) dbg.value with the sunk instruction, as the sunk
instruction is more likely to be "live" later in the compilation process.

If we can't salvage dbg.value users of a sunk instruction, mark the dbg.values
in the original block as being undef. This terminates any earlier variable
location range, and represents the fact that we've optimized out the variable
location for a portion of the program.

Differential Revision: https://reviews.llvm.org/D56788
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstructionCombining.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstructionCombining.cpp
The file was added/llvm/trunk/test/Transforms/InstCombine/debuginfo-sink.llllvm.src/test/Transforms/InstCombine/debuginfo-sink.ll
Revision 353933 by serge_sans_paille:
Missing header
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/unittests/ADT/OptionalTest.cpp (diff)llvm.src/unittests/ADT/OptionalTest.cpp
Revision 353932 by mkazantsev:
[GuardWidening] Support widening of explicitly expressed guards

This patch adds support of guards expressed in explicit form via
`widenable_condition` in Guard Widening pass.

Differential Revision: https://reviews.llvm.org/D56075
Reviewed By: reames
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/GuardWidening.cpp (diff)llvm.src/lib/Transforms/Scalar/GuardWidening.cpp
The file was added/llvm/trunk/test/Transforms/GuardWidening/basic_widenable_condition_guards.llllvm.src/test/Transforms/GuardWidening/basic_widenable_condition_guards.ll
The file was added/llvm/trunk/test/Transforms/GuardWidening/mixed_guards.llllvm.src/test/Transforms/GuardWidening/mixed_guards.ll
Revision 353931 by sberg:
Look through typedefs in getFunctionTypeWithExceptionSpec

Fixes https://bugs.llvm.org/show_bug.cgi?id=40658

Differential Revision: https://reviews.llvm.org/D58056
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/ASTContext.cpp (diff)clang.src/lib/AST/ASTContext.cpp
The file was added/cfe/trunk/test/AST/function-alias.cppclang.src/test/AST/function-alias.cpp
Revision 353928 by dstenb:
[DebugInfo] Stop changing labels for register-described parameter DBG_VALUEs

Summary:
This is a follow-up to D57510. This patch stops DebugHandlerBase from
changing the starting label for the first non-overlapping,
register-described parameter DBG_VALUEs to the beginning of the
function. That code did not consider what defined the registers, which
could result in the ranges for the debug values starting before their
defining instructions. We currently do not emit debug values for
constant values directly at the start of the function, so this code is
still useful for such values, but my intention is to remove the code
from DebugHandlerBase completely when we get there. One reason for
removing it is that the code violates the history map's ranges, which I
think can make it quite confusing when troubleshooting.

In D57510, PrologEpilogInserter was amended so that parameter DBG_VALUEs
now are kept at the start of the entry block, even after emission of
prologue code. That was done to reduce the degradation of debug
completeness from this patch. PR40638 is another example, where the
lexical-scope trimming that LDV does, in combination with scheduling,
results in instructions after the prologue being left without locations.
There might be other cases where the DBG_VALUEs are pushed further down,
for which the DebugHandlerBase code may be helpful, but as it now quite
often result in incorrect locations, even after the prologue, it seems
better to remove that code, and try to work our way up with accurate
locations.

In the long run we should maybe not aim to provide accurate locations
inside the prologue. Some single location descriptions, at least those
referring to stack values, generate inaccurate values inside the
epilogue, so we maybe should not aim to achieve accuracy for location
lists. However, it seems that we now emit line number programs that can
result in GDB and LLDB stopping inside the prologue when doing line
number stepping into functions. See PR40188 for more information.

A summary of some of the changed test cases is available in PR40188#c2.

Reviewers: aprantl, dblaikie, rnk, jmorse

Reviewed By: aprantl

Subscribers: jdoerfert, jholewinski, jvesely, javed.absar, llvm-commits

Tags: #debug-info, #llvm

Differential Revision: https://reviews.llvm.org/D57511
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp (diff)llvm.src/lib/CodeGen/AsmPrinter/DebugHandlerBase.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/llvm.dbg.value.ll (diff)llvm.src/test/CodeGen/AMDGPU/llvm.dbg.value.ll
The file was modified/llvm/trunk/test/DebugInfo/AArch64/asan-stack-vars.mir (diff)llvm.src/test/DebugInfo/AArch64/asan-stack-vars.mir
The file was modified/llvm/trunk/test/DebugInfo/ARM/partial-subreg.ll (diff)llvm.src/test/DebugInfo/ARM/partial-subreg.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/fp-stack.ll (diff)llvm.src/test/DebugInfo/COFF/fp-stack.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/fpo-stack-protect.ll (diff)llvm.src/test/DebugInfo/COFF/fpo-stack-protect.ll
The file was modified/llvm/trunk/test/DebugInfo/COFF/pieces.ll (diff)llvm.src/test/DebugInfo/COFF/pieces.ll
The file was modified/llvm/trunk/test/DebugInfo/MIR/AArch64/clobber-sp.mir (diff)llvm.src/test/DebugInfo/MIR/AArch64/clobber-sp.mir
The file was modified/llvm/trunk/test/DebugInfo/NVPTX/debug-info.ll (diff)llvm.src/test/DebugInfo/NVPTX/debug-info.ll
The file was modified/llvm/trunk/test/DebugInfo/X86/debug-loc-asan.mir (diff)llvm.src/test/DebugInfo/X86/debug-loc-asan.mir
The file was modified/llvm/trunk/test/DebugInfo/X86/debug-loc-offset.mir (diff)llvm.src/test/DebugInfo/X86/debug-loc-offset.mir
The file was modified/llvm/trunk/test/DebugInfo/X86/dw_op_minus_direct.ll (diff)llvm.src/test/DebugInfo/X86/dw_op_minus_direct.ll
Revision 353927 by serge_sans_paille:
Make llvm::Optional<T> trivially copyable when T is trivially copyable

This is an ever-recurring issue (see https://bugs.llvm.org/show_bug.cgi?id=39427 and https://bugs.llvm.org/show_bug.cgi?id=35978)
but I believe that thanks to https://reviews.llvm.org/D54472 we can now ship a decent implementation of this.

Basically the fact that llvm::is_trivially_copyable has a consistent behavior across compilers should prevent any ABI issue,
and using in-place new instead of memcpy should keep compiler bugs away.

Differential Revision: https://reviews.llvm.org/D57097
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ADT/Optional.h (diff)llvm.src/include/llvm/ADT/Optional.h
The file was modified/llvm/trunk/unittests/ADT/OptionalTest.cpp (diff)llvm.src/unittests/ADT/OptionalTest.cpp
Revision 353926 by ioeric:
[clangd] Handle a few more diag kinds in include fixer.

Reviewers: sammccall

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D58135
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/IncludeFixer.cpp (diff)clang-tools-extra.src/clangd/IncludeFixer.cpp
The file was modified/clang-tools-extra/trunk/unittests/clangd/DiagnosticsTests.cpp (diff)clang-tools-extra.src/unittests/clangd/DiagnosticsTests.cpp
Revision 353924 by mgorny:
[llvm] [cmake] Provide split include paths in LLVMConfig

Modify LLVMConfig to provide split variables for in-source and generated
include paths.  Currently, it uses a single value for both
LLVM_INCLUDE_DIRS and LLVM_INCLUDE_DIR which works for install tree but
fails hard at build tree (where LLVM_INCLUDE_DIR incorrectly contains
multiple values).

Instead, put the generated directory in LLVM_INCLUDE_DIR, and the source
tree in LLVM_MAIN_INCLUDE_DIR which is consistent with in-LLVM builds.
For install tree, both variables will have the same value.

Differential Revision: https://reviews.llvm.org/D58109
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/cmake/modules/CMakeLists.txt (diff)llvm.src/cmake/modules/CMakeLists.txt
The file was modified/llvm/trunk/cmake/modules/LLVMConfig.cmake.in (diff)llvm.src/cmake/modules/LLVMConfig.cmake.in
Revision 353923 by anton-afanasyev:
[X86][SLP] Enable SLP vectorization for 128-bit horizontal X86 instructions (add, sub)

Try to use 64-bit SLP vectorization. In addition to horizontal instrs
this change triggers optimizations for partial vector operations (for instance,
using low halfs of 128-bit registers xmm0 and xmm1 to multiply <2 x float> by
<2 x float>).

Fixes llvm.org/PR32433
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86TargetTransformInfo.cpp (diff)llvm.src/lib/Target/X86/X86TargetTransformInfo.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86TargetTransformInfo.h (diff)llvm.src/lib/Target/X86/X86TargetTransformInfo.h
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/addsub.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/addsub.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/alternate-fp.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/alternate-fp.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/alternate-int.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/alternate-int.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/crash_7zip.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/crash_7zip.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/crash_bullet.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/crash_bullet.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/crash_bullet3.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/crash_bullet3.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/crash_cmpop.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/crash_cmpop.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/crash_sim4b1.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/crash_sim4b1.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/fptosi.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/fptosi.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/fptoui.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/fptoui.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/insertvalue.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/insertvalue.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/phi.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/phi.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/remark_not_all_parts.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/remark_not_all_parts.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/reorder_phi.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/reorder_phi.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/resched.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/resched.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/rgb_phi.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/rgb_phi.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/saxpy.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/saxpy.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/schedule-bundle.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/schedule-bundle.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/sext.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/sext.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/shift-lshr.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/shift-lshr.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/shift-shl.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/shift-shl.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/sitofp.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/sitofp.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/tiny-tree.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/tiny-tree.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/uitofp.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/uitofp.ll
The file was added/llvm/trunk/test/Transforms/SLPVectorizer/X86/vec-reg-64bit.llllvm.src/test/Transforms/SLPVectorizer/X86/vec-reg-64bit.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/vect_copyable_in_binops.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/vect_copyable_in_binops.ll
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/X86/zext.ll (diff)llvm.src/test/Transforms/SLPVectorizer/X86/zext.ll
Revision 353922 by mstorsjo:
[test] Fix the test from SVN r353917 when running without lld available

These tests still relies on the default linker not to be overridden
via e.g. CLANG_DEFAULT_LINKER in cmake.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/Driver/instrprof-ld.c (diff)clang.src/test/Driver/instrprof-ld.c
Revision 353921 by ctopper:
[X86] Use default expansion for (i64 fp_to_uint f80) when avx512 is enabled on 64-bit targets to match what happens without avx512.

In 64-bit mode prior to avx512 we use Expand, but with avx512 we need to make f32/f64 conversions Legal so we use Custom and then do our own expansion for f80. But this seems to produce codegen differences relative to avx2. This patch corrects this.
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
The file was modified/llvm/trunk/test/CodeGen/X86/scalar-fp-to-i64.ll (diff)llvm.src/test/CodeGen/X86/scalar-fp-to-i64.ll
Revision 353920 by ctopper:
[X86] Refactor the FP_TO_INTHelper interface. NFCI

-Pull the final stack load creation from the two callers into the helper.
-Return a single SDValue instead of a std::pair.
-Remove the Replace flag which isn't really needed.
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
The file was modified/llvm/trunk/lib/Target/X86/X86ISelLowering.h (diff)llvm.src/lib/Target/X86/X86ISelLowering.h
Revision 353919 by evgeny777:
[llvm-objcopy] Add --strip-unneeded-symbol(s)

Differential revision: https://reviews.llvm.org/D58027
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-objcopy/COFF/strip-unneeded.test (diff)llvm.src/test/tools/llvm-objcopy/COFF/strip-unneeded.test
The file was modified/llvm/trunk/test/tools/llvm-objcopy/ELF/strip-unneeded.test (diff)llvm.src/test/tools/llvm-objcopy/ELF/strip-unneeded.test
The file was modified/llvm/trunk/tools/llvm-objcopy/COFF/COFFObjcopy.cpp (diff)llvm.src/tools/llvm-objcopy/COFF/COFFObjcopy.cpp
The file was modified/llvm/trunk/tools/llvm-objcopy/CopyConfig.cpp (diff)llvm.src/tools/llvm-objcopy/CopyConfig.cpp
The file was modified/llvm/trunk/tools/llvm-objcopy/CopyConfig.h (diff)llvm.src/tools/llvm-objcopy/CopyConfig.h
The file was modified/llvm/trunk/tools/llvm-objcopy/ELF/ELFObjcopy.cpp (diff)llvm.src/tools/llvm-objcopy/ELF/ELFObjcopy.cpp
The file was modified/llvm/trunk/tools/llvm-objcopy/ObjcopyOpts.td (diff)llvm.src/tools/llvm-objcopy/ObjcopyOpts.td
Revision 353918 by mstorsjo:
[profile] Provide lprofGetHostName for all windows environments

This function doesn't use anything MSVC specific but works fine
for any _WIN32 target.

Differential Revision: https://reviews.llvm.org/D58106
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/profile/InstrProfilingUtil.c (diff)compiler-rt.src/lib/profile/InstrProfilingUtil.c
Revision 353917 by mstorsjo:
[MinGW] Add the profiling library when necessary

Profiling still doesn't seem to work properly, but this at least
hooks up the library and eases completing whatever is missing.

Differential Revision: https://reviews.llvm.org/D58107
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChains/MinGW.cpp (diff)clang.src/lib/Driver/ToolChains/MinGW.cpp
The file was modified/cfe/trunk/test/Driver/instrprof-ld.c (diff)clang.src/test/Driver/instrprof-ld.c
Revision 353914 by phosek:
[CMake] Avoid clang dependencies in the runtimes build

Dependencies like clang aren't available in the runtimes build, this
was accidentally omitted in D57992.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/cmake/Modules/CompilerRTCompile.cmake (diff)compiler-rt.src/cmake/Modules/CompilerRTCompile.cmake
Revision 353911 by mkazantsev:
[LoopSimplifyCFG] Re-enable const branch folding by default

Known underlying bugs have been fixed, intensive fuzz testing did not
find any new problems. Re-enabling by default. Feel free to revert if
it causes any functional failures.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopSimplifyCFG.cpp (diff)llvm.src/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
Revision 353910 by kcc:
[libFuzzer] a bit of refactoring of the fork mode
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerFork.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerFork.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/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/FuzzerMerge.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerMerge.cpp
The file was modified/compiler-rt/trunk/test/fuzzer/merge-control-file.test (diff)compiler-rt.src/test/fuzzer/merge-control-file.test
Revision 353909 by yln:
[Sanitizer][NFC] Darwin: limit parallism for sanitizer_common tests

Many sanitizer_common tests (ASan, TSan) run with a "sanitized process
space" so we need to limit their parallism.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/sanitizer_common/lit.common.cfg (diff)compiler-rt.src/test/sanitizer_common/lit.common.cfg
Revision 353908 by maskray:
[llvm-readobj] Dump GNU_PROPERTY_X86_FEATURE_2_{NEEDED,USED} notes in .note.gnu.property

Summary: And change the output ("X86 features" -> "x86 feature") a bit.

Reviewers: grimar, xiangzhangllvm, hjl.tools, rupprecht

Reviewed By: rupprecht

Subscribers: rupprecht, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D58112
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/BinaryFormat/ELF.h (diff)llvm.src/include/llvm/BinaryFormat/ELF.h
The file was modified/llvm/trunk/test/tools/llvm-readobj/note-gnu-property.s (diff)llvm.src/test/tools/llvm-readobj/note-gnu-property.s
The file was modified/llvm/trunk/tools/llvm-readobj/ELFDumper.cpp (diff)llvm.src/tools/llvm-readobj/ELFDumper.cpp
Revision 353907 by rnk:
[MC] Make symbol version errors non-fatal

We stil don't have a source location, which is pretty lame, but at least
we won't tell the user to file a clang bug report anymore.

Fixes PR40712
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/MC/ELFObjectWriter.cpp (diff)llvm.src/lib/MC/ELFObjectWriter.cpp
The file was modified/llvm/trunk/test/MC/ELF/invalid-symver.s (diff)llvm.src/test/MC/ELF/invalid-symver.s
The file was modified/llvm/trunk/test/MC/ELF/multiple-different-symver.s (diff)llvm.src/test/MC/ELF/multiple-different-symver.s
Revision 353905 by hubert.reinterpretcast:
[xray][tests][RHDTS] Add -lstdc++ after LLVM libs, resolving link error with RHDTS

Summary:
A link error was encountered when using the Red Hat Developer Toolset.
In the RHDTS, `libstdc++.so` is a linker script that may resolve symbols
to a static library. This patch places `-lstdc++` later in the ordering.

Reviewers: sfertile, nemanjai, tstellar, dberris

Reviewed By: dberris

Subscribers: dberris, mgorny, delcypher, jdoerfert, #sanitizers, llvm-commits

Tags: #llvm, #sanitizers

Differential Revision: https://reviews.llvm.org/D58144
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/xray/tests/CMakeLists.txt (diff)compiler-rt.src/lib/xray/tests/CMakeLists.txt
Revision 353904 by Jonas Devlieghere:
[dsymutil] Improve readability of cloneAllCompileUnits (NFC)

Add some newlines and improve consistency between the two loops.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/dsymutil/DwarfLinker.cpp (diff)llvm.src/tools/dsymutil/DwarfLinker.cpp
Revision 353903 by Jonas Devlieghere:
[dsymutil] Don't clone empty CUs

The DWARF standard says that an empty compile unit is not valid:

> Each such contribution consists of a compilation unit header (see
> Section 7.5.1.1 on page 200) followed by a single DW_TAG_compile_unit or
> DW_TAG_partial_unit debugging information entry, together with its
> children.

Therefore we shouldn't clone them in dsymutil.

Differential revision: https://reviews.llvm.org/D57979
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/dsymutil/X86/empty-CU.test (diff)llvm.src/test/tools/dsymutil/X86/empty-CU.test
The file was modified/llvm/trunk/test/tools/dsymutil/X86/generate-empty-CU.test (diff)llvm.src/test/tools/dsymutil/X86/generate-empty-CU.test
The file was modified/llvm/trunk/tools/dsymutil/CompileUnit.cpp (diff)llvm.src/tools/dsymutil/CompileUnit.cpp
The file was modified/llvm/trunk/tools/dsymutil/DwarfLinker.cpp (diff)llvm.src/tools/dsymutil/DwarfLinker.cpp
Revision 353902 by eugenis:
[tsan] #undef one-letter macros

buildgo.sh puts most of sanitizer_common together in a single source
file. These single-letter macros end up affecting a lot of unrelated
code; #undef them as early as possible.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_md5.cc (diff)compiler-rt.src/lib/tsan/rtl/tsan_md5.cc
Revision 353901 by asbirlea:
[MemorySSA & LoopPassManager] Add remaining book keeping [NFCI].

Add plumbing to get MemorySSA in the remaining loop passes.
Also update unit test to add the dependency.
[EnableMSSALoopDependency remains disabled].
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopLoadElimination.cpp (diff)llvm.src/lib/Transforms/Scalar/LoopLoadElimination.cpp
The file was modified/llvm/trunk/lib/Transforms/Vectorize/LoopVectorize.cpp (diff)llvm.src/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modified/llvm/trunk/unittests/Transforms/Scalar/LoopPassManagerTest.cpp (diff)llvm.src/unittests/Transforms/Scalar/LoopPassManagerTest.cpp
Revision 353900 by arsenm:
AMDGPU: Try to use function specific ST

Subtargets are a function level property, so ideally we would
eliminate everywhere that needs to check the global one. Rename the
function to try avoiding confusion.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPUAsmPrinter.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUAsmPrinter.h (diff)llvm.src/lib/Target/AMDGPU/AMDGPUAsmPrinter.h
Revision 353899 by arsenm:
AMDGPU: Ignore CodeObjectV3 when inlining

This was inhibiting inlining of library functions when clang was
invoking the inliner directly. This is covering a bit of a mess with
subtarget feature handling, and this shouldn't be a subtarget
feature. The behavior is different depending on whether you are using
a -mattr flag in clang, or llc, opt.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h (diff)llvm.src/lib/Target/AMDGPU/AMDGPUTargetTransformInfo.h
The file was modified/llvm/trunk/test/Transforms/Inline/AMDGPU/inline-target-cpu.ll (diff)llvm.src/test/Transforms/Inline/AMDGPU/inline-target-cpu.ll
Revision 353898 by jonpa:
[SystemZ]  Remember to cast value to void to disable warning.

Hopefully fixes buildbot problems.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp (diff)llvm.src/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
Revision 353897 by asbirlea:
[LICM] Cap the clobbering calls in LICM.

Summary:
Unlimitted number of calls to getClobberingAccess can lead to high
compile times in pathological cases.
Switching EnableLicmCap flag from bool to int, and enabling to default 100.
(tested to be appropriate for current bechmarks)
We can revisit this value when enabling MemorySSA.

Reviewers: sanjoy, chandlerc, george.burgess.iv

Subscribers: jlebar, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D57968
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Transforms/Utils/LoopUtils.h (diff)llvm.src/include/llvm/Transforms/Utils/LoopUtils.h
The file was modified/llvm/trunk/lib/Transforms/Scalar/LICM.cpp (diff)llvm.src/lib/Transforms/Scalar/LICM.cpp
Revision 353895 by reames:
[Tests] A few more live-in deopt lowering tests

Nothing super interesting, just making sure obvious cases work.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/X86/statepoint-live-in.ll (diff)llvm.src/test/CodeGen/X86/statepoint-live-in.ll
Revision 353893 by rnk:
Revert r353880 "[HIP] Handle compile -m options and propagate into LLC"

This was still causing test failures in the clang test suite.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChains/HIP.cpp (diff)clang.src/lib/Driver/ToolChains/HIP.cpp
The file was removed/cfe/trunk/test/Driver/hip-toolchain-features.hipclang.src/test/Driver/hip-toolchain-features.hip
Revision 353892 by kzhuravl:
AMDGPU/NFC: Remove SubtargetFeatureISAVersion since it is not used anywhere
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPU.td (diff)llvm.src/lib/Target/AMDGPU/AMDGPU.td
Revision 353891 by kcc:
[libFuzzer] move the implementation of the fork mode into a separate file
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/fuzzer/CMakeLists.txt (diff)compiler-rt.src/lib/fuzzer/CMakeLists.txt
The file was modified/compiler-rt/trunk/lib/fuzzer/FuzzerDriver.cpp (diff)compiler-rt.src/lib/fuzzer/FuzzerDriver.cpp
The file was added/compiler-rt/trunk/lib/fuzzer/FuzzerFork.cppcompiler-rt.src/lib/fuzzer/FuzzerFork.cpp
The file was added/compiler-rt/trunk/lib/fuzzer/FuzzerFork.hcompiler-rt.src/lib/fuzzer/FuzzerFork.h
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
Revision 353890 by pcc:
docs: Update the ShadowCallStack documentation.

- Remove most of the discussion of the x86_64 implementation;
  link to an older version of the documentation for details of
  that implementation.
- Add description of the compatibility and security issues discovered
  during the development of the aarch64 implementation for Android.

Differential Revision: https://reviews.llvm.org/D58105
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/docs/ShadowCallStack.rst (diff)clang.src/docs/ShadowCallStack.rst
Revision 353889 by kzhuravl:
AMDGPU: Remove duplicate processor (gfx900)
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/GCNProcessors.td (diff)llvm.src/lib/Target/AMDGPU/GCNProcessors.td
Revision 353888 by dmajor:
[gn build] Separate debug and optimization settings

This patch adds an `is_optimized` variable, orthogonal to `is_debug`, to allow for a gn analogue to `RelWithDebInfo` builds.

As part of this we'll want to explicitly enable GC+ICF, for the sake of `is_debug && is_optimized` builds. The flags normally default to true except that if you pass `/DEBUG` they default to false.

Differential Revision: https://reviews.llvm.org/D58075
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/build/BUILD.gn (diff)llvm.src/utils/gn/build/BUILD.gn
The file was modified/llvm/trunk/utils/gn/build/buildflags.gni (diff)llvm.src/utils/gn/build/buildflags.gni
Revision 353887 by ctopper:
[X86] Follow up to r353878, add MSVC compatibility command lines to other intrinsic tests that uses packed structs to control alignment.

r353878 fixed a bug in _mm_loadu_ps and added a command line to catch it. Adding additional command lines to prevent breaking other intrinsics in the future.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/CodeGen/avx-builtins.c (diff)clang.src/test/CodeGen/avx-builtins.c
The file was modified/cfe/trunk/test/CodeGen/avx512f-builtins.c (diff)clang.src/test/CodeGen/avx512f-builtins.c
The file was modified/cfe/trunk/test/CodeGen/sse2-builtins.c (diff)clang.src/test/CodeGen/sse2-builtins.c
Revision 353886 by bjope:
[SelectionDAG] Clean up comments in SelectionDAGBuilder.h. NFC

Remove redundant function/variable names from doxygen
comments (as suggested in https://reviews.llvm.org/D57697).
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h (diff)llvm.src/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.h
Revision 353885 by aaronenyeshi:
[HIP] Fix hip-toolchain-rdc tests

Since we removed changed the way HIP Toolchain will propagate -m options into LLC, we need to remove from these older tests.

This is related to rC353880.

Differential Revision: https://reviews.llvm.org/D57977
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/Driver/hip-toolchain-no-rdc.hip (diff)clang.src/test/Driver/hip-toolchain-no-rdc.hip
The file was modified/cfe/trunk/test/Driver/hip-toolchain-rdc.hip (diff)clang.src/test/Driver/hip-toolchain-rdc.hip
Revision 353884 by epilk:
Fix auto-upgrade for the new parameter to llvm.objectsize

r352664 added a 'dynamic' parameter to objectsize, but the AutoUpgrade
changes were incomplete. Also, fix an off-by-one error I made in the
upgrade logic that is now no longer unreachable.

Differential revision: https://reviews.llvm.org/D58071
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/IR/AutoUpgrade.cpp (diff)llvm.src/lib/IR/AutoUpgrade.cpp
The file was added/llvm/trunk/test/Bitcode/objectsize-upgrade-7.0.llllvm.src/test/Bitcode/objectsize-upgrade-7.0.ll
The file was added/llvm/trunk/test/Bitcode/objectsize-upgrade-7.0.ll.bcllvm.src/test/Bitcode/objectsize-upgrade-7.0.ll.bc
Revision 353883 by spatel:
[ConstProp] add test for miscompile from bitcast transform; NFC

This problem goes with the fix in D51215.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/Transforms/ConstProp/bitcast.ll (diff)llvm.src/test/Transforms/ConstProp/bitcast.ll
Revision 353882 by Jonas Devlieghere:
Make ModuleDependencyCollector's method virtual (NFC)

For reproducers in LLDB we want to hook up into the existing clang
infrastructure. To make that happen we need to be able to override the
ModuleDependencyCollector's methods.

The alternative was to inherit from the DependencyCollector directly,
but that would mean re-implementing the ModuleDependencyListener and the
ModuleDependencyPPCallbacks and ModuleDependencyMMCallbacks.

Differential revision: https://reviews.llvm.org/D58072
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Frontend/Utils.h (diff)clang.src/include/clang/Frontend/Utils.h
Revision 353880 by aaronenyeshi:
[HIP] Handle compile -m options and propagate into LLC

Allow the compile options for -m such as -mxnack/-mno-xnack, -msram-ecc/-mno-sram-ecc, -mcode-object-v3/-mno-code-object-v3 to propagate into LLC args.

Also add lit tests to verify features are properly passed.

Differential Revision: https://reviews.llvm.org/D57977

Reviewers: yaxunl, kzhuravl
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChains/HIP.cpp (diff)clang.src/lib/Driver/ToolChains/HIP.cpp
The file was added/cfe/trunk/test/Driver/hip-toolchain-features.hipclang.src/test/Driver/hip-toolchain-features.hip
Revision 353878 by rnk:
[X86] Use __m128_u for _mm_loadu_ps after r353555

Add secondary triple to existing SSE test for it.  I audited other uses
of __attribute__((__packed__)) in the intrinsic headers, and this seemed
to be the only missing one.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Headers/xmmintrin.h (diff)clang.src/lib/Headers/xmmintrin.h
The file was modified/cfe/trunk/test/CodeGen/sse-builtins.c (diff)clang.src/test/CodeGen/sse-builtins.c
Revision 353877 by asl:
Disable PIC/PIE for MSP430 target

Relocatable code generation is meaningless on MSP430, as the platform is too small to use shared libraries.

Patch by Dmitry Mikushev!

Differential Revision: https://reviews.llvm.org/D56927
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChains/MSP430.h (diff)clang.src/lib/Driver/ToolChains/MSP430.h
The file was added/cfe/trunk/test/CodeGen/msp430-reloc.cclang.src/test/CodeGen/msp430-reloc.c
Revision 353876 by rupprecht:
[llvm-dwp] Use color-formatted error reporting
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/llvm-dwp/llvm-dwp.cpp (diff)llvm.src/tools/llvm-dwp/llvm-dwp.cpp
Revision 353875 by jfb:
[NFC] typo
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/Decl.h (diff)clang.src/include/clang/AST/Decl.h
Revision 353874 by sfertile:
Fix undefined behaviour in PPCInstPrinter::printBranchOperand.

Fix the undefined behaviour introduced by my previous patch r353865 (left
shifting a potentially negative value), which was caught by the bots that run
UBSan.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp (diff)llvm.src/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp
Revision 353873 by rupprecht:
[llvm-dwp] Avoid writing the output dwp file when there is an error

Summary: Use ToolOutputFile to clean up the output file unless dwp actually finishes successfully.

Reviewers: dblaikie

Reviewed By: dblaikie

Subscribers: jdoerfert, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D58130
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-dwp/X86/missing_dwo_id.test (diff)llvm.src/test/tools/llvm-dwp/X86/missing_dwo_id.test
The file was modified/llvm/trunk/tools/llvm-dwp/llvm-dwp.cpp (diff)llvm.src/tools/llvm-dwp/llvm-dwp.cpp
Revision 353872 by nikic:
[AArch64] Expand v8i8 cttz (PR39729)

Fix for https://bugs.llvm.org/show_bug.cgi?id=39729.

Rather than adding just a case for v8i8 I'm setting cttz to expand
for all vector types.

Differential Revision: https://reviews.llvm.org/D58008
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cpp (diff)llvm.src/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was added/llvm/trunk/test/CodeGen/AArch64/vec_cttz.llllvm.src/test/CodeGen/AArch64/vec_cttz.ll
Revision 353871 by reames:
[InlineSpiller] Fix a crash due to lack of forward progress from remat (try 2)

This is a recommit of r335091 Add more test cases for deopt-operands via regalloc, and r335077 [InlineSpiller] Fix a crash due to lack of forward progress from remat specifically for STATEPOINT.  They were reverted due to a crash.

This change includes the text of both original changes, but also includes three aditional pieces:
1) A bug fix for the observed crash.  I had failed to record the failed remat value as live which resulted in an instruction being deleted which still had uses.  With the machine verifier, this is caught quickly.  Without it, we fail in StackSlotColoring due to an empty live interval from LiveStack.
2) A test case which demonstrates the fix for (1).  See @test11.
3) A control flag which defaults to disabling this for the moment.  Once I've run more extensive validaton, I will switch the default and then remove this flag.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/InlineSpiller.cpp (diff)llvm.src/lib/CodeGen/InlineSpiller.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/statepoint-live-in.ll (diff)llvm.src/test/CodeGen/X86/statepoint-live-in.ll
Revision 353870 by scott.linder:
[AMDGPU] Require at least protected visibility for certain symbols

This allows the global visibility controls to be restrictive while still
populating the dynamic symbol table where required.

Differential Revision: https://reviews.llvm.org/D56871
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CodeGenModule.cpp (diff)clang.src/lib/CodeGen/CodeGenModule.cpp
The file was modified/cfe/trunk/lib/CodeGen/TargetInfo.cpp (diff)clang.src/lib/CodeGen/TargetInfo.cpp
The file was added/cfe/trunk/test/CodeGenOpenCL/visibility.clclang.src/test/CodeGenOpenCL/visibility.cl
Revision 353867 by jonpa:
[SystemZ]  Use VGM whenever possible to load FP immediates.

isFPImmLegal() has been extended to recognize certain FP immediates that can
be built with VGM (Vector Generate Mask).

These scalar FP immediates (that were previously loaded from the constant
pool) are now selected as VGMF/VGMG in Select().

Review: Ulrich Weigand
https://reviews.llvm.org/D58003
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp (diff)llvm.src/lib/Target/SystemZ/SystemZISelDAGToDAG.cpp
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZISelLowering.cpp (diff)llvm.src/lib/Target/SystemZ/SystemZISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/SystemZ/SystemZISelLowering.h (diff)llvm.src/lib/Target/SystemZ/SystemZISelLowering.h
The file was added/llvm/trunk/test/CodeGen/SystemZ/fp-const-12.llllvm.src/test/CodeGen/SystemZ/fp-const-12.ll
The file was modified/llvm/trunk/test/CodeGen/SystemZ/subregliveness-02.ll (diff)llvm.src/test/CodeGen/SystemZ/subregliveness-02.ll
Revision 353865 by sfertile:
[PowerPC] Fix printing of negative offsets in call instruction dissasembly.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp (diff)llvm.src/lib/Target/PowerPC/Disassembler/PPCDisassembler.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp (diff)llvm.src/lib/Target/PowerPC/InstPrinter/PPCInstPrinter.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCInstrInfo.td (diff)llvm.src/lib/Target/PowerPC/PPCInstrInfo.td
The file was added/llvm/trunk/test/tools/llvm-objdump/PowerPCllvm.src/test/tools/llvm-objdump/PowerPC
The file was added/llvm/trunk/test/tools/llvm-objdump/PowerPC/branch-offset.sllvm.src/test/tools/llvm-objdump/PowerPC/branch-offset.s
The file was added/llvm/trunk/test/tools/llvm-objdump/PowerPC/lit.local.cfgllvm.src/test/tools/llvm-objdump/PowerPC/lit.local.cfg
Revision 353863 by paquette:
[GlobalISel][NFC] Gardening: Make translateSimpleUnaryIntrinsic general

Instead of only having this code work for unary intrinsics, have it work for
an arbitrary number of parameters.

Factor out the cases that fall under this (fma, pow).

This makes it a bit easier to add more intrinsics which don't require any
special work.

Differential Revision: https://reviews.llvm.org/D58079
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/IRTranslator.h (diff)llvm.src/include/llvm/CodeGen/GlobalISel/IRTranslator.h
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/IRTranslator.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/IRTranslator.cpp
Revision 353862 by dsanders:
[tablegen] Add locations to many PrintFatalError() calls

Summary:
While working on the GISel Combiner, I noticed I was producing location-less
error messages fairly often and set about fixing this. In the process, I
noticed quite a few places elsewhere in TableGen that also neglected to include
a relevant location.

This patch adds locations to errors that relate to a specific record (or a
field within it) and also have easy access to the relevant location. This is
particularly useful when multiclasses are involved as many of these errors
refer to the full name of a record and it's difficult to guess which substring
is grep-able.

Unfortunately, tablegen currently only supports Record granularity so it's not
currently possible to point at a specific Init so these sometimes point at the
record that caused the error rather than the precise origin of the error.

Reviewers: bogner, aditya_nandakumar, volkan, aemerson, paquette, nhaehnle

Reviewed By: nhaehnle

Subscribers: jdoerfert, nhaehnle, asb, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, jrtc27, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D58077
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/TableGen/AsmMatcherEmitter.cpp (diff)llvm.src/utils/TableGen/AsmMatcherEmitter.cpp
The file was modified/llvm/trunk/utils/TableGen/AsmWriterInst.cpp (diff)llvm.src/utils/TableGen/AsmWriterInst.cpp
The file was modified/llvm/trunk/utils/TableGen/CallingConvEmitter.cpp (diff)llvm.src/utils/TableGen/CallingConvEmitter.cpp
The file was modified/llvm/trunk/utils/TableGen/CodeGenDAGPatterns.cpp (diff)llvm.src/utils/TableGen/CodeGenDAGPatterns.cpp
The file was modified/llvm/trunk/utils/TableGen/CodeGenInstruction.cpp (diff)llvm.src/utils/TableGen/CodeGenInstruction.cpp
The file was modified/llvm/trunk/utils/TableGen/CodeGenRegisters.cpp (diff)llvm.src/utils/TableGen/CodeGenRegisters.cpp
The file was modified/llvm/trunk/utils/TableGen/CodeGenSchedule.cpp (diff)llvm.src/utils/TableGen/CodeGenSchedule.cpp
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/InstrInfoEmitter.cpp (diff)llvm.src/utils/TableGen/InstrInfoEmitter.cpp
The file was modified/llvm/trunk/utils/TableGen/IntrinsicEmitter.cpp (diff)llvm.src/utils/TableGen/IntrinsicEmitter.cpp
The file was modified/llvm/trunk/utils/TableGen/RISCVCompressInstEmitter.cpp (diff)llvm.src/utils/TableGen/RISCVCompressInstEmitter.cpp
The file was modified/llvm/trunk/utils/TableGen/SDNodeProperties.cpp (diff)llvm.src/utils/TableGen/SDNodeProperties.cpp
The file was modified/llvm/trunk/utils/TableGen/SearchableTableEmitter.cpp (diff)llvm.src/utils/TableGen/SearchableTableEmitter.cpp
Revision 353861 by paquette:
[GlobalISel][AArch64] Select llvm.bswap* for non-vector types

This teaches the IRTranslator to emit G_BSWAP when it runs into
Intrinsic::bswap. This allows us to select G_BSWAP for non-vector types in
AArch64.

Add a select-bswap.mir test, and add global isel checks to a couple existing
tests in test/CodeGen/AArch64.

This doesn't handle every bswap case, since some of these rely on known bits
stuff. This just lets us handle the naive case.

Differential Revision: https://reviews.llvm.org/D58081
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/IRTranslator.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was added/llvm/trunk/lib/Target/AArch64/select-bswap.mirllvm.src/lib/Target/AArch64/select-bswap.mir
The file was modified/llvm/trunk/test/CodeGen/AArch64/arm64-rev.ll (diff)llvm.src/test/CodeGen/AArch64/arm64-rev.ll
The file was modified/llvm/trunk/test/CodeGen/AArch64/dp1.ll (diff)llvm.src/test/CodeGen/AArch64/dp1.ll
Revision 353860 by rksimon:
[X86][AVX] Enable shuffle combining support for zero_extend

A more limited version of rL352997 that had to be disabled in rL353198 - allow extension of any 128/256/512 bit vector that at least uses byte sized scalars.
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
The file was modified/llvm/trunk/test/CodeGen/X86/vector-shuffle-256-v8.ll (diff)llvm.src/test/CodeGen/X86/vector-shuffle-256-v8.ll
Revision 353859 by spatel:
[DAGCombiner] convert logic-of-setcc into bit magic (PR40611)

If we're comparing some value for equality against 2 constants
and those constants have an absolute difference of just 1 bit,
then we can offset and mask off that 1 bit and reduce to a single
compare against zero:
         and/or (setcc X, C0, ne), (setcc X, C1, ne/eq) -->
         setcc ((add X, -C1), ~(C0 - C1)), 0, ne/eq

https://rise4fun.com/Alive/XslKj

This transform is disabled by default using a TLI hook
("convertSetCCLogicToBitwiseLogic()").

That should be overridden for AArch64, MIPS, Sparc and possibly
others based on the asm shown in:
https://bugs.llvm.org/show_bug.cgi?id=40611
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/DAGCombiner.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modified/llvm/trunk/test/CodeGen/PowerPC/setcc-logic.ll (diff)llvm.src/test/CodeGen/PowerPC/setcc-logic.ll
The file was modified/llvm/trunk/test/CodeGen/X86/setcc-logic.ll (diff)llvm.src/test/CodeGen/X86/setcc-logic.ll
Revision 353857 by kadircet:
[clangd] Fix a lit-test.

Summary:
Fixes https://bugs.llvm.org/show_bug.cgi?id=40593.
Non-percent-encoded chars doesn't cause any problems on the input-side since we
assume everything after authority section is data and don't interpret them as
delimeters.

Reviewers: sammccall

Subscribers: ilya-biryukov, ioeric, MaskRay, jkorous, arphaman, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D58126
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/test/clangd/Inputs/background-index/definition.jsonrpc (diff)clang-tools-extra.src/test/clangd/Inputs/background-index/definition.jsonrpc
Revision 353855 by spatel:
[x86] add negative tests for setcc folds; 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 353854 by whitequark:
[SelectionDAG] Fix return calling convention in expansion of ?MULO

Summary:
The SMULO/UMULO DAG nodes, when not directly supported by the target,
expand to a multiplication twice as wide. In case that the resulting
type is not legal, the legalizer cannot directly call the intrinsic
with the wide arguments; instead, it "pre-lowers" them by splitting
them in halves.

rL283203 made sure that on big endian targets, the legalizer passes
the argument halves in the correct order. It did not do the same
for the return value halves because the existing code used a hack;
it put an illegal type into DAG and hoped that nothing would break
and it would be correctly lowered elsewhere.

rL307207 fixed this, handling return value halves similar to how
argument handles are handled, but did not take big-endian targets
into account.

This commit fixes the expansion on big-endian targets, such as
the out-of-tree OR1K target.

Reviewers: eli.friedman, vadimcn

Subscribers: george-hopkins, efriedma, llvm-commits

Differential Revision: https://reviews.llvm.org/D45355
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
The file was added/llvm/trunk/test/CodeGen/Thumb/umulo-32-legalisation-lowering.llllvm.src/test/CodeGen/Thumb/umulo-32-legalisation-lowering.ll
Revision 353853 by phosek:
[CMake][Fuchsia] Pass -ldl -lpthread LDFLAGS to second stage

We're using static libc++ for the second stage which requires explicitly
linking -ldl and -lpthread.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/cmake/caches/Fuchsia.cmake (diff)clang.src/cmake/caches/Fuchsia.cmake
Revision 353852 by adibiagio:
[MCA] Improved debug prints. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/MCA/Support.h (diff)llvm.src/include/llvm/MCA/Support.h
The file was modified/llvm/trunk/lib/MCA/Stages/ExecuteStage.cpp (diff)llvm.src/lib/MCA/Stages/ExecuteStage.cpp
The file was modified/llvm/trunk/lib/MCA/Support.cpp (diff)llvm.src/lib/MCA/Support.cpp
Revision 353851 by rksimon:
[PowerPC] Regenerate test
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/PowerPC/pre-inc-disable.ll (diff)llvm.src/test/CodeGen/PowerPC/pre-inc-disable.ll
Revision 353850 by Louis Dionne:
[libc++] Avoid UB in the no-exceptions mode in a few places

Summary:
A few places in the library seem to behave unexpectedly when the library
is compiled or used with exceptions disabled. For example, not throwing
an exception when a pointer is NULL can lead us to dereference the pointer
later on, which is UB. This patch fixes such occurences.

It's hard to tell whether there are other places where the no-exceptions
mode misbehaves like this, because the replacement for throwing an
exception does not always seem to be abort()ing, but at least this
patch will improve the situation somewhat.

See http://lists.llvm.org/pipermail/libcxx-dev/2019-January/000172.html

Reviewers: mclow.lists, EricWF

Subscribers: christof, jkorous, dexonsmith, libcxx-commits

Differential Revision: https://reviews.llvm.org/D57761
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/ios (diff)libcxx.src/include/ios
The file was modified/libcxx/trunk/include/map (diff)libcxx.src/include/map
The file was modified/libcxx/trunk/include/unordered_map (diff)libcxx.src/include/unordered_map
The file was modified/libcxx/trunk/src/hash.cpp (diff)libcxx.src/src/hash.cpp
The file was modified/libcxx/trunk/src/ios.cpp (diff)libcxx.src/src/ios.cpp
The file was modified/libcxx/trunk/src/locale.cpp (diff)libcxx.src/src/locale.cpp
The file was added/libcxx/trunk/test/libcxx/containers/associative/map/at.abort.pass.cpplibcxx.src/test/libcxx/containers/associative/map/at.abort.pass.cpp
The file was added/libcxx/trunk/test/libcxx/containers/associative/map/at.const.abort.pass.cpplibcxx.src/test/libcxx/containers/associative/map/at.const.abort.pass.cpp
The file was added/libcxx/trunk/test/libcxx/containers/unord/unord.map/at.abort.pass.cpplibcxx.src/test/libcxx/containers/unord/unord.map/at.abort.pass.cpp
The file was added/libcxx/trunk/test/libcxx/containers/unord/unord.map/at.const.abort.pass.cpplibcxx.src/test/libcxx/containers/unord/unord.map/at.const.abort.pass.cpp
The file was added/libcxx/trunk/test/libcxx/input.output/iostreams.base/ioslibcxx.src/test/libcxx/input.output/iostreams.base/ios
The file was added/libcxx/trunk/test/libcxx/input.output/iostreams.base/ios/iostate.flagslibcxx.src/test/libcxx/input.output/iostreams.base/ios/iostate.flags
The file was added/libcxx/trunk/test/libcxx/input.output/iostreams.base/ios/iostate.flags/clear.abort.pass.cpplibcxx.src/test/libcxx/input.output/iostreams.base/ios/iostate.flags/clear.abort.pass.cpp
The file was added/libcxx/trunk/test/libcxx/localization/locales/locale.abort.pass.cpplibcxx.src/test/libcxx/localization/locales/locale.abort.pass.cpp
The file was added/libcxx/trunk/test/libcxx/localization/locales/locale.category.abort.pass.cpplibcxx.src/test/libcxx/localization/locales/locale.category.abort.pass.cpp
The file was added/libcxx/trunk/test/libcxx/localization/locales/use_facet.abort.pass.cpplibcxx.src/test/libcxx/localization/locales/use_facet.abort.pass.cpp
Revision 353848 by arsenm:
AMDGPU/GlobalISel: Add more insert/extract testcases
Change TypePath in RepositoryPath in Workspace
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-insert.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-insert.mir
Revision 353847 by dmgreen:
[Codegen] Make sure kill flags are not incorrect from removed machine phi's

We need to clear the kill flags on both SingleValReg and OldReg, to ensure they remain
conservatively correct.

Differential Revision: https://reviews.llvm.org/D58114
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/OptimizePHIs.cpp (diff)llvm.src/lib/CodeGen/OptimizePHIs.cpp
The file was added/llvm/trunk/test/CodeGen/Thumb/opt-phis.mirllvm.src/test/CodeGen/Thumb/opt-phis.mir
Revision 353846 by rupprecht:
[llvm-dwp] Abort when dwo_id is unset

Summary:
An empty dwo_id indicates a degenerate .dwo file that should not have been generated in the first place. Instead of discovering this error later when merging with another degenerate .dwo file, print an error immediately when noticing an unset dwo_id, including the filename of the offending file.

Test case created by compiling a trivial file w/ `-fno-split-dwarf-inlining -gmlt -gsplit-dwarf -c` prior to r353771

Reviewers: dblaikie

Reviewed By: dblaikie

Subscribers: jdoerfert, aprantl, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D58085
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/tools/llvm-dwp/Inputs/missing_dwo_id.dwollvm.src/test/tools/llvm-dwp/Inputs/missing_dwo_id.dwo
The file was modified/llvm/trunk/test/tools/llvm-dwp/X86/invalid_string_form.test (diff)llvm.src/test/tools/llvm-dwp/X86/invalid_string_form.test
The file was added/llvm/trunk/test/tools/llvm-dwp/X86/missing_dwo_id.testllvm.src/test/tools/llvm-dwp/X86/missing_dwo_id.test
The file was modified/llvm/trunk/test/tools/llvm-dwp/X86/non_cu_top_level.test (diff)llvm.src/test/tools/llvm-dwp/X86/non_cu_top_level.test
The file was modified/llvm/trunk/tools/llvm-dwp/llvm-dwp.cpp (diff)llvm.src/tools/llvm-dwp/llvm-dwp.cpp
Revision 353845 by arsenm:
AMDGPU/GlobalISel: Only make f16 constants legal on f16 targets

We could deal with it, but there's no real point.
Change TypePath in RepositoryPath in Workspace
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-fconstant.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-fconstant.mir
Revision 353844 by arsenm:
GlobalISel: Use default rounding mode when extending fconstant

I don't think this matters since the values should all be exactly
representable.
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 353843 by arsenm:
GlobalISel: Move some more legalize cases into functions
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