FailedChanges

Summary

  1. [libc++] Fix link error with _LIBCPP_HIDE_FROM_ABI_PER_TU and std::string Summary: This is effectively a revert of r344616, which was a partial fix for PR38964 (compilation of <string> with GCC in C++03 mode). However, that configuration is explicitly not supported anymore and that partial fix breaks compilation with Clang when per-TU insulation is provided. PR42676 rdar://52899715 Reviewers: mclow.lists, EricWF Subscribers: christof, jkorous, dexonsmith, libcxx-commits Tags: #libc Differential Revision: https://reviews.llvm.org/D64941
  2. [Clangd] Fixed SelectionTree bug for macros Summary: Fixed SelectionTree bug for macros - Fixed SelectionTree claimRange for macros and template instantiations - Fixed SelectionTree unit tests - Changed a breaking test in TweakTests Reviewers: sammccall, kadircet Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64329
  3. Don't update NoTrappingFPMath and FPDenormalMode in resetTargetOptions We'd like to remove this whole function, because these are properties of functions, not the target as a whole. These two are easy to remove because they are only used for emitting ARM build attributes, which expects them to represent the defaults for the whole module, not just the last function generated. This is needed to get correct build attributes when using IPRA on ARM, because IPRA causes resetTargetOptions to get called before ARMAsmPrinter::emitAttributes. Differential revision: https://reviews.llvm.org/D64929
  4. Revert "Revert r366458, r366467 and r366468" This reverts commit 9c377105da0be7c2c9a3c70035ce674c71b846af. [clangd][BackgroundIndexLoader] Directly store DependentTU while loading shard Summary: We were deferring the population of DependentTU field in LoadedShard until BackgroundIndexLoader was consumed. This actually triggers a use after free since the shards FileToTU was pointing at could've been moved while consuming the Loader. Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64980
  5. [llvm-readelf] - A fix for: "--hash-symbols asserts for 64-bit ELFs" Fixes https://bugs.llvm.org/show_bug.cgi?id=42622. (--hash-symbols switch is currently broken for 64-bit ELF files, due to r352630.) Differential revision: https://reviews.llvm.org/D64788
  6. [IPRA] Don't rely on non-exact function definitions If a function definition is not exact, then the linker could select a differently-compiled version of it, which could use different registers. https://reviews.llvm.org/D64909
  7. [ARM] Add <saturate> operand to SQRSHRL and UQRSHLL Summary: According to the new Armv8-M specification https://static.docs.arm.com/ddi0553/bh/DDI0553B_h_armv8m_arm.pdf the instructions SQRSHRL and UQRSHLL now have an additional immediate operand <saturate>. The new assembly syntax is: SQRSHRL<c> RdaLo, RdaHi, #<saturate>, Rm UQRSHLL<c> RdaLo, RdaHi, #<saturate>, Rm where <saturate> can be either 64 (the existing behavior) or 48, in that case the result is saturated to 48 bits. The new operand is encoded as follows: #64 Encoded as sat = 0 #48 Encoded as sat = 1 sat is bit 7 of the instruction bit pattern. This patch adds a new assembler operand class MveSaturateOperand which implements parsing and encoding. Decoding is implemented in DecodeMVEOverlappingLongShift. Reviewers: ostannard, simon_tatham, t.p.northover, samparker, dmgreen, SjoerdMeijer Reviewed By: simon_tatham Subscribers: javed.absar, kristof.beyls, hiraditya, pbarrio, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64810
  8. Revert r366458, r366467 and r366468 r366458 is causing test failures. r366467 and r366468 had to be reverted as they were casuing conflict while reverting r366458. r366468 [clangd] Remove dead code from BackgroundIndex r366467 [clangd] BackgroundIndex stores shards to the closest project r366458 [clangd] Refactor background-index shard loading
  9. [OpenCL] Define CLK_NULL_EVENT without cast Defining CLK_NULL_EVENT with a `(void*)` cast has the (unintended?) side-effect that the address space will be fixed (as generic in OpenCL 2.0 mode). The consequence is that any target specific address space for the clk_event_t type will not be applied. It is not clear why the void pointer cast was needed in the first place, and it seems we can do without it. Differential Revision: https://reviews.llvm.org/D63876
  10. [clangd] Handle windows line endings in QueryDriver Summary: The previous patch did not fix the end mark. D64789 fixes second case of https://github.com/clangd/clangd/issues/93 Patch by @lh123 ! Reviewers: sammccall, kadircet Reviewed By: kadircet Subscribers: MaskRay, ilya-biryukov, jkorous, arphaman, cfe-commits Tags: #clang-tools-extra, #clang Differential Revision: https://reviews.llvm.org/D64970
  11. [sanitizers] Use covering ObjectFormatType switches Summary: This patch removes the `default` case from some switches on `llvm::Triple::ObjectFormatType`, and cases for the missing enumerators (`UnknownObjectFormat`, `Wasm`, and `XCOFF`) are then added. For `UnknownObjectFormat`, the effect of the action for the `default` case is maintained; otherwise, where `llvm_unreachable` is called, `report_fatal_error` is used instead. Where the `default` case returns a default value, `report_fatal_error` is used for XCOFF as a placeholder. For `Wasm`, the effect of the action for the `default` case in maintained. The code is structured to avoid strongly implying that the `Wasm` case is present for any reason other than to make the switch cover all `ObjectFormatType` enumerator values. Reviewers: sfertile, jasonliu, daltenty Reviewed By: sfertile Subscribers: hiraditya, aheejin, sunfish, llvm-commits, cfe-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D64222
  12. [AMDGPU] Simplify the exclusive scan used for optimized atomics Summary: Change the scan algorithm to use only power-of-two shifts (1, 2, 4, 8, 16, 32) instead of starting off shifting by 1, 2 and 3 and then doing a 3-way ADD, because: 1. It simplifies the compiler a little. 2. It minimizes vgpr pressure because each instruction is now of the form vn = vn + vn << c. 3. It is more friendly to the DPP combiner, which currently can't combine into an ADD3 instruction. Because of #2 and #3 the end result is improved from this: v_add_u32_dpp v4, v3, v3 row_shr:1 row_mask:0xf bank_mask:0xf bound_ctrl:0 v_mov_b32_dpp v5, v3 row_shr:2 row_mask:0xf bank_mask:0xf v_mov_b32_dpp v1, v3 row_shr:3 row_mask:0xf bank_mask:0xf v_add3_u32 v1, v4, v5, v1 s_nop 1 v_add_u32_dpp v1, v1, v1 row_shr:4 row_mask:0xf bank_mask:0xe s_nop 1 v_add_u32_dpp v1, v1, v1 row_shr:8 row_mask:0xf bank_mask:0xc s_nop 1 v_add_u32_dpp v1, v1, v1 row_bcast:15 row_mask:0xa bank_mask:0xf s_nop 1 v_add_u32_dpp v1, v1, v1 row_bcast:31 row_mask:0xc bank_mask:0xf To this: v_add_u32_dpp v1, v1, v1 row_shr:1 row_mask:0xf bank_mask:0xf bound_ctrl:0 s_nop 1 v_add_u32_dpp v1, v1, v1 row_shr:2 row_mask:0xf bank_mask:0xf bound_ctrl:0 s_nop 1 v_add_u32_dpp v1, v1, v1 row_shr:4 row_mask:0xf bank_mask:0xe s_nop 1 v_add_u32_dpp v1, v1, v1 row_shr:8 row_mask:0xf bank_mask:0xc s_nop 1 v_add_u32_dpp v1, v1, v1 row_bcast:15 row_mask:0xa bank_mask:0xf s_nop 1 v_add_u32_dpp v1, v1, v1 row_bcast:31 row_mask:0xc bank_mask:0xf I.e. two fewer computational instructions, one extra nop where we could schedule something else. Reviewers: arsenm, sheredom, critson, rampitec, vpykhtin Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64411
  13. [Loop Peeling] Enable peeling of multiple exits by default. Enable loop peeling with multiple exits where all non-latch exits ends up with deopt by default. Reviewers: reames, fhahn Reviewed By: reames Subscribers: xbolva00, hiraditya, zzheng, llvm-commits Differential Revision: https://reviews.llvm.org/D64619
  14. [clangd] cleanup: unify the implemenation of checking a location is inside main file. Summary: We have variant implementations in the codebase, this patch unifies them. Reviewers: ilya-biryukov, kadircet Subscribers: MaskRay, jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64915
  15. [InstCombine] Dropping redundant masking before left-shift [5/5] (PR42563) Summary: If we have some pattern that leaves only some low bits set, and then performs left-shift of those bits, if none of the bits that are left after the final shift are modified by the mask, we can omit the mask. There are many variants to this pattern: f. `((x << MaskShAmt) a>> MaskShAmt) << ShiftShAmt` All these patterns can be simplified to just: `x << ShiftShAmt` iff: f. `(ShiftShAmt-MaskShAmt) s>= 0` (i.e. `ShiftShAmt u>= MaskShAmt`) Normally, the inner pattern is sign-extend, but for our purposes it's no different to other patterns: alive proofs: f: https://rise4fun.com/Alive/7U3 For now let's start with patterns where both shift amounts are variable, with trivial constant "offset" between them, since i believe this is both simplest to handle and i think this is most common. But again, there are likely other variants where we could use ValueTracking/ConstantRange to handle more cases. https://bugs.llvm.org/show_bug.cgi?id=42563 Differential Revision: https://reviews.llvm.org/D64524
  16. [InstCombine] Dropping redundant masking before left-shift [4/5] (PR42563) Summary: If we have some pattern that leaves only some low bits set, and then performs left-shift of those bits, if none of the bits that are left after the final shift are modified by the mask, we can omit the mask. There are many variants to this pattern: e. `((x << MaskShAmt) l>> MaskShAmt) << ShiftShAmt` All these patterns can be simplified to just: `x << ShiftShAmt` iff: e. `(ShiftShAmt-MaskShAmt) s>= 0` (i.e. `ShiftShAmt u>= MaskShAmt`) alive proofs: e: https://rise4fun.com/Alive/0FT For now let's start with patterns where both shift amounts are variable, with trivial constant "offset" between them, since i believe this is both simplest to handle and i think this is most common. But again, there are likely other variants where we could use ValueTracking/ConstantRange to handle more cases. https://bugs.llvm.org/show_bug.cgi?id=42563 Differential Revision: https://reviews.llvm.org/D64521
  17. [InstCombine] Dropping redundant masking before left-shift [3/5] (PR42563) Summary: If we have some pattern that leaves only some low bits set, and then performs left-shift of those bits, if none of the bits that are left after the final shift are modified by the mask, we can omit the mask. There are many variants to this pattern: d. `(x & ((-1 << MaskShAmt) >> MaskShAmt)) << ShiftShAmt` All these patterns can be simplified to just: `x << ShiftShAmt` iff: d. `(ShiftShAmt-MaskShAmt) s>= 0` (i.e. `ShiftShAmt u>= MaskShAmt`) alive proofs: d: https://rise4fun.com/Alive/I5Y For now let's start with patterns where both shift amounts are variable, with trivial constant "offset" between them, since i believe this is both simplest to handle and i think this is most common. But again, there are likely other variants where we could use ValueTracking/ConstantRange to handle more cases. https://bugs.llvm.org/show_bug.cgi?id=42563 Differential Revision: https://reviews.llvm.org/D64519
  18. [InstCombine] Dropping redundant masking before left-shift [2/5] (PR42563) Summary: If we have some pattern that leaves only some low bits set, and then performs left-shift of those bits, if none of the bits that are left after the final shift are modified by the mask, we can omit the mask. There are many variants to this pattern: c. `(x & (-1 >> MaskShAmt)) << ShiftShAmt` All these patterns can be simplified to just: `x << ShiftShAmt` iff: c. `(ShiftShAmt-MaskShAmt) s>= 0` (i.e. `ShiftShAmt u>= MaskShAmt`) alive proofs: c: https://rise4fun.com/Alive/RgJh For now let's start with patterns where both shift amounts are variable, with trivial constant "offset" between them, since i believe this is both simplest to handle and i think this is most common. But again, there are likely other variants where we could use ValueTracking/ConstantRange to handle more cases. https://bugs.llvm.org/show_bug.cgi?id=42563 Differential Revision: https://reviews.llvm.org/D64517
  19. [InstCombine] Dropping redundant masking before left-shift [1/5] (PR42563) Summary: If we have some pattern that leaves only some low bits set, and then performs left-shift of those bits, if none of the bits that are left after the final shift are modified by the mask, we can omit the mask. There are many variants to this pattern: b. `(x & (~(-1 << maskNbits))) << shiftNbits` All these patterns can be simplified to just: `x << ShiftShAmt` iff: b. `(MaskShAmt+ShiftShAmt) u>= bitwidth(x)` alive proof: b: https://rise4fun.com/Alive/y8M For now let's start with patterns where both shift amounts are variable, with trivial constant "offset" between them, since i believe this is both simplest to handle and i think this is most common. But again, there are likely other variants where we could use ValueTracking/ConstantRange to handle more cases. https://bugs.llvm.org/show_bug.cgi?id=42563 Differential Revision: https://reviews.llvm.org/D64514
  20. [InstCombine] Dropping redundant masking before left-shift [0/5] (PR42563) Summary: If we have some pattern that leaves only some low bits set, and then performs left-shift of those bits, if none of the bits that are left after the final shift are modified by the mask, we can omit the mask. There are many variants to this pattern: a. `(x & ((1 << MaskShAmt) - 1)) << ShiftShAmt` All these patterns can be simplified to just: `x << ShiftShAmt` iff: a. `(MaskShAmt+ShiftShAmt) u>= bitwidth(x)` alive proof: a: https://rise4fun.com/Alive/wi9 Indeed, not all of these patterns are canonical. But since this fold will only produce a single instruction i'm really interested in handling even uncanonical patterns, since i have this general kind of pattern in hotpaths, and it is not totally outlandish for bit-twiddling code. For now let's start with patterns where both shift amounts are variable, with trivial constant "offset" between them, since i believe this is both simplest to handle and i think this is most common. But again, there are likely other variants where we could use ValueTracking/ConstantRange to handle more cases. https://bugs.llvm.org/show_bug.cgi?id=42563 Reviewers: spatel, nikic, huihuiz, xbolva00 Reviewed By: xbolva00 Subscribers: efriedma, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64512
  21. [ELF][test] Fix aarch64-condb-reloc.s
  22. [NFC] Fix an indentation issue in llvm/Support/TargetRegistry.h
  23. [ELF][AArch64] Improve some aarch64-*.s tests * Delete aarch64-tls-static.s: it is covered by aarch64-tlsdesc.c * Add --no-show-raw-insn to llvm-objdump -d tests * When linking an executable with %t.so, the path %t.so will be recorded in the DT_NEEDED entry if %t.so doesn't have DT_SONAME. The DT_NEEDED has varying lengths on different systems. Add -soname to make tests more robust. This issue will become outstanding if we allow overlapping PT_LOAD (D64930).
  24. [DebugInfo] Some fields do not need relocations even relax is enabled. In debug frame information, some fields, e.g., Length in CIE/FDE and Offset in FDE are attributes to describe the structure of CIE/FDE. They are not related to the relaxed code. However, these attributes are symbol differences. So, in current design, these attributes will be filled as zero and LLVM generates relocations for them. We only need to generate relocations for symbols in executable sections. So, if the symbols are not located in executable sections, we still evaluate their values under relaxation. Differential Revision: https://reviews.llvm.org/D61584
  25. unbreak links
  26. replace the old kaleidoscope tutorial files with orphaned pages that forward to the new copy.
  27. Point to the dusted off version of the kaleidoscope tutorial.
  28. [test] [llvm-objcopy] Fix broken test case Summary: The test case added in D62718 did not work unless the user was root because write bits were not set for the output file. This change uses only permissions with user write (0200) to ensure tests pass regardless of the users permissions. Reviewers: jhenderson, rupprecht, MaskRay, espindola, alexshap Reviewed By: MaskRay Subscribers: emaste, arichardson, jakehehrlich, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64302
  29. [NFC][PowerPC] Modify the test case add_cmp.ll
  30. [libFuzzer] Set Android specific ALL_FUZZER_SUPPORTED_ARCH Build libFuzzer for all Android supported architectures.
  31. [DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame. It is necessary to generate fixups in .debug_frame or .eh_frame as relaxation is enabled due to the address delta may be changed after relaxation. There is an opcode with 6-bits data in debug frame encoding. So, we also need 6-bits fixup types. Differential Revision: https://reviews.llvm.org/D58335
  32. Use the MachineBasicBlock symbol for a callbr target Summary: Inline asm doesn't use labels when compiled as an object file. Therefore, we shouldn't create one for the (potential) callbr destination. Instead, use the symbol for the MachineBasicBlock. Reviewers: nickdesaulniers, craig.topper Reviewed By: nickdesaulniers Subscribers: xbolva00, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64888
  33. Fix formatting of inline argument comments. NFC. Also, remove the final arg from ItaniumCXXABI in the PNaCl case since its not needed. Differential Revision: https://reviews.llvm.org/D64955
  34. [GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and legalize later. I plan on adding memcpy optimizations in the GlobalISel pipeline, but we can't do that unless we delay lowering to actual function calls. This patch changes the translator to generate G_INTRINSIC_W_SIDE_EFFECTS for these functions, and then have each target specify that using the new custom legalizer for intrinsics hook that they want it expanded it a libcall. Differential Revision: https://reviews.llvm.org/D64895
  35. [cmake] Fix typo where a varible was checked for Apple instead of Darwin Subscribers: mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64965
  36. [cmake] Convert the NATIVE llvm build process to be project agnostic lldb recently added a tablegen tool. In order to properly cross compile lldb standalone there needs to be a mechanism to generate the native lldb build, analgous to what's done for the NATIVE llvm build. Thus, we can simply modify this setup to allow for any project to be used.
  37. Reapply [llvm-lipo] Implement -create (with hardcoded alignments) This reapplies r366142 with a fix for the failing Windows test. Original commit message: Creates universal binary output file from input files. Currently uses hard coded value for alignment. Want to get the create functionality approved before implementing the alignment function. Patch by Anusha Basana <anusha.basana@gmail.com> Differential Revision: https://reviews.llvm.org/D64102
  38. Update the SimpleJIT class in the clang-interpreter example to use ORCv2. This will remove the ORCv1 deprecation warnings.
  39. Update polly test for SCEV change. r366419 adds nsw to more SCEV expressions, which allows polly to make more aggressive assumptions about the input expressions.
  40. [clang-scan-deps] Dependency directives source minimizer: handle #pragma once We should re-emit `#pragma once` to ensure the preprocessor will still honor it when running on minimized sources. Differential Revision: https://reviews.llvm.org/D64945
  41. [AMDGPU] Drop Reg32 and use regular AsmName This allows to reduce generated AMDGPUGenAsmWriter.inc by ~100Kb. Differential Revision: https://reviews.llvm.org/D64952
  42. [WebAssembly] Use passive segments by default when memory is shared Summary: This change makes it so that passing --shared-memory is all a user needs to do to get proper multithreaded code. This default can still be explicitly overridden for any reason using --passive-segments and --active-segments. Reviewers: sbc100, quantum Subscribers: dschuff, jgravelle-google, aheejin, sunfish, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64950
  43. [GlobalISel][AArch64] Add support for base register + offset register loads Add support for folding G_GEPs into loads of the form ``` ldr reg, [base, off] ``` when possible. This can save an add before the load. Currently, this is only supported for loads of 64 bits into 64 bit registers. Add a new addressing mode function, `selectAddrModeRegisterOffset` which performs this folding when it is profitable. Also add a test for addressing modes for G_LOAD. Differential Revision: https://reviews.llvm.org/D64944
  44. CodeGen: Allow !associated metadata to point to aliases. This is a small extension of !associated, mostly useful for the implementation convenience of instrumentation passes that RAUW globals with aliases, such as LowerTypeTests. Differential Revision: https://reviews.llvm.org/D64951
  45. Revert [X86] EltsFromConsecutiveLoads - support common source loads This reverts r366441 (git commit 48104ef7c9c653bbb732b66d7254957389fea337) This causes clang to fail to compile some file in Skia. Reduction soon.
  46. [WebAssembly] fix bug in finding .tdata segment Summary: Fix bug in `wasm-ld`'s `Writer::createInitTLSFunction` that only finds `.tdata` if it's the first section. Reviewers: tlively, aheejin, sbc100 Reviewed By: sbc100 Subscribers: dschuff, jgravelle-google, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64947
  47. [WebAssembly] Fix __builtin_wasm_tls_base intrinsic Summary: Properly generate the outchain for the `__builtin_wasm_tls_base` intrinsic. Also marked the intrinsic pure, per @sunfish's suggestion. Reviewers: tlively, aheejin, sbc100, sunfish Reviewed By: tlively Subscribers: dschuff, jgravelle-google, hiraditya, cfe-commits, llvm-commits, sunfish Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D64949
  48. [cmake] Only run llvm-codesign if targetting apple on an apple host Summary: Other platforms don't have the capability to perform llvm_codesign step. If LLVM_CODESIGNING_IDENTITY is set then this chunk of code would attempt to codesign if the target was Apple. But when cross compiling to Darwin from Linux, for example, this step would fail. So test if the host is Apple as well. Subscribers: mgorny, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64942
  49. Fix typo in r366494. Spotted by Yuanfang Chen.
  50. Remove the static initialize introduced in r365099 Summary: Some polish for r365099 which adds a static initializer to MachOObjectFile. Remove it by moving it to file scope. Reviewers: smeenai, alexshap, compnerd, mtrent, anushabasana Reviewed By: smeenai Subscribers: hiraditya, jkorous, dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64873
  51. IR: Teach Constant::needsRelocation() that relative pointers don't need to be relocated. This causes sections with relative pointers to be marked as read only, which means that they won't end up sharing pages with writable data. Differential Revision: https://reviews.llvm.org/D64948
  52. [ASan] Support `{f}puts(NULL)` on Darwin, part 2 Add braces around macro `{ MACRO(); }` to guard against macros that expand to multiple statements.
  53. gn build: Merge r366458.
  54. FileSystem: Check for DTTOIF alone, not _DIRENT_HAVE_D_TYPE While 'd_type' is a non-standard extension to `struct dirent`, only glibc signals its presence with a macro '_DIRENT_HAVE_D_TYPE'. However, any platform with 'd_type' also includes a way to convert to mode_t values using the macro 'DTTOIF', so we can check for that alone and still be confident that the 'd_type' member exists. (If this turns out to be wrong, I'll go back and set up an actual CMake check.) I couldn't think of how to write a test for this, because I couldn't think of how to test that a 'stat' call doesn't happen without controlling the filesystem or intercepting 'stat', and there's no good cross-platform way to do that that I know of. Follow-up (almost a year later) to r342089. rdar://problem/50592673 https://reviews.llvm.org/D64940
  55. [ORC] Suppress an ORCv1 deprecation warning.
  56. [libc++] Add C++17 deduction guides for std::function Summary: http://llvm.org/PR39606 Reviewers: Quuxplusone Subscribers: christof, dexonsmith, libcxx-commits Differential Revision: https://reviews.llvm.org/D54410
  57. [OPENMP]Fix sharing of threadprivate variables with TLS support. If the threadprivate variable is used in the copyin clause on inner parallel directive with TLS support, we capture this variable in all outer OpenMP scopes. It leads to the fact that in all scopes we're working with the original variable, not the threadprivate copies.
  58. [compiler-rt] Complete revert of r366413 Incomplete revert. Mea culpa. This test is failing on sanitizer-x86_64-linux and our internal CI.
  59. Fix C++ modules build llvm-svn: 366344 missed an include that broke the LLVM_ENABLE_MODULES build.
  60. [RISCV] Hard float ABI support The RISC-V hard float calling convention requires the frontend to: * Detect cases where, once "flattened", a struct can be passed using int+fp or fp+fp registers under the hard float ABI and coerce to the appropriate type(s) * Track usage of GPRs and FPRs in order to gate the above, and to determine when signext/zeroext attributes must be added to integer scalars This patch attempts to do this in compliance with the documented ABI, and uses ABIArgInfo::CoerceAndExpand in order to do this. @rjmccall, as author of that code I've tagged you as reviewer for initial feedback on my usage. Note that a previous version of the ABI indicated that when passing an int+fp struct using a GPR+FPR, the int would need to be sign or zero-extended appropriately. GCC never did this and the ABI was changed, which makes life easier as ABIArgInfo::CoerceAndExpand can't currently handle sign/zero-extension attributes. Re-landed after backing out 366450 due to missed hunks. Differential Revision: https://reviews.llvm.org/D60456
  61. [COFF] Change a variable type to be const in the HeapAllocSite map.
  62. [FPEnv] Teach the IRBuilder about constrained FPTrunc and FPExt The IRBuilder doesn't know that FPTrunc and FPExt have constrained equivalents. Add the support by building on the strict FP mode now present in the IRBuilder. Reviewed by: John McCall Approved by: John McCall Differential Revision: https://reviews.llvm.org/D64934
  63. [WebAssembly] Implement __builtin_wasm_tls_base intrinsic Summary: Add `__builtin_wasm_tls_base` so that LeakSanitizer can find the thread-local block and scan through it for memory leaks. Reviewers: tlively, aheejin, sbc100 Subscribers: dschuff, jgravelle-google, hiraditya, sunfish, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D64900
  64. [OPENMP]Provide correct data sharing attributes for loop control variables. Loop control variables are private in loop-based constructs and we shall take this into account when generate the code for inner constructs. Currently, those variables are reported as shared in many cases. Moved the analysis of the data-sharing attributes of the loop control variable to an early semantic stage to correctly handle their attributes.
  65. [LibTooling] Relax Transformer to allow rewriting macro expansions Summary: Currently, Transformer rejects any changes to source locations inside macro expansions. This change relaxes that constraint to allow rewrites when the entirety of the expansion is replaced, since that can be mapped to replacing the entirety of the expansion range in the file source. This change makes Transformer consistent with the handling of edit ranges in `clang::edit::Commit` (which is used, for example, for applying `FixItHint`s from diagnostics). Reviewers: ilya-biryukov Subscribers: gribozavr, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64518
  66. Revert "Fix asan infinite loop on undefined symbol" This reverts commit 63719119c78ca965b5d80e5c20fcfe81ba28f896. The tests in this commit were failing on a Linux sanitizer bot and our internal CI. http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/22401/steps/test%20standalone%20compiler-rt%20with%20symbolizer/logs/stdio
  67. [LAA] Re-check bit-width of pointers after stripping. Summary: - As the pointer stripping now tracks through `addrspacecast`, prepare to handle the bit-width difference from the result pointer. Reviewers: jdoerfert Subscribers: jvesely, nhaehnle, hiraditya, arphaman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64928
  68. [LibTooling] Add function to translate and validate source range for editing Summary: Adds the function `getRangeForEdit` to validate that a given source range is editable and, if needed, translate it into a range in the source file (for example, if it's sourced in macro expansions). Reviewers: ilya-biryukov Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64924
  69. [clangd] Remove dead code from BackgroundIndex
  70. [clangd] BackgroundIndex stores shards to the closest project Summary: Changes persistance logic to store shards at the directory of closest CDB. Previously we were storing all shards to directory of the CDB that triggered indexing, it had its downsides. For example, if you had two TUs coming from a different CDB but depending on the same header foo.h, we will store the foo.h only for the first CDB, and it would be missing for the second and we would never persist it since it was actually present in the memory and persisted before. This patch still stores only a single copy of a shard, but makes the directory a function of the file name. So that the shard place will be unique even with multiple CDBs accessing the file. This directory is determined as the first directory containing a CDB in the file's parent directories, if no such directory exists we make use of the home directory. Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64745
  71. ELF: Add support for remaining R_AARCH64_MOVW* relocations. Differential Revision: https://reviews.llvm.org/D64685
  72. [NFC][llvm-readobj] Refactor dynamic string table indexing into a function. Restore printDynamicString removed in rL363868. It provides better error handling whenever indexing dynamic string table is needed. Reviewers: jhenderson, MaskRay, grimar Reviewed by: jhenderson, MaskRay, grimar Differential Revision: https://reviews.llvm.org/D64674
  73. ELF: Simplify test. NFCI. Avoid splitting the test into multiple files and use zero for the value of the symbol with addends at relocations so that it's clear what value is being used at relocations. Differential Revision: https://reviews.llvm.org/D64684
  74. MC: AArch64: Add support for prel_g* relocation specifiers. Differential Revision: https://reviews.llvm.org/D64683
  75. AArch64: Unify relocation restrictions between MOVK/MOVN/MOVZ. There doesn't seem to be a practical reason for these instructions to have different restrictions on the types of relocations that they may be used with, notwithstanding the language in the ELF AArch64 spec that implies that specific relocations are meant to be used with specific instructions. For example, we currently forbid the first instruction in the following sequence, despite it currently being used by clang to generate a global reference under -mcmodel=large: movz x0, #:abs_g0_nc:foo movk x0, #:abs_g1_nc:foo movk x0, #:abs_g2_nc:foo movk x0, #:abs_g3:foo Therefore, allow MOVK/MOVN/MOVZ to accept the union of the set of relocations that they currently accept individually. Differential Revision: https://reviews.llvm.org/D64466
  76. ELF: Allow forward references to linked sections. It's possible to create IR that uses !associated to refer to a global that appears later in the module, which can result in these types of forward references being generated. Unfortunately our assembler does not currently accept the resulting .s so I needed to use yaml2obj to test this. Differential Revision: https://reviews.llvm.org/D64880
  77. [clangd] Refactor background-index shard loading Reviewers: sammccall Subscribers: mgorny, ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64712
  78. [ASTUnit] Attempt to unbreak Windows buildbots after r366448
  79. Minor styling fix. NFC.
  80. [clangd] Get rid of dots and dotsdots within GlobalCompilationDatabase Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64860
  81. Revert "[RISCV] Hard float ABI support" r366450 The commit was missing a few hunks. Will fix and recommit.
  82. Revert r366449: [CrossTU] Add a function to retrieve original source location. Reason: the commit breaks layering by adding a dependency on ASTUnit (which is inside clangFrontend) from the ASTImporter (which is inside clangAST).
  83. [Clangd] NFC: Fixed tweaks CMakeLists order to alphabetical
  84. [Clangd] Changed ExtractVariable to only work on non empty selections Summary: - For now, we don't trigger in any case if it's an empty selection - Fixed unittests Reviewers: kadircet, sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64912
  85. [RISCV] Hard float ABI support The RISC-V hard float calling convention requires the frontend to: * Detect cases where, once "flattened", a struct can be passed using int+fp or fp+fp registers under the hard float ABI and coerce to the appropriate type(s) * Track usage of GPRs and FPRs in order to gate the above, and to determine when signext/zeroext attributes must be added to integer scalars This patch attempts to do this in compliance with the documented ABI, and uses ABIArgInfo::CoerceAndExpand in order to do this. @rjmccall, as author of that code I've tagged you as reviewer for initial feedback on my usage. Note that a previous version of the ABI indicated that when passing an int+fp struct using a GPR+FPR, the int would need to be sign or zero-extended appropriately. GCC never did this and the ABI was changed, which makes life easier as ABIArgInfo::CoerceAndExpand can't currently handle sign/zero-extension attributes. Differential Revision: https://reviews.llvm.org/D60456
  86. [CrossTU] Add a function to retrieve original source location. Summary: A new function will be added to get the original SourceLocation for a SourceLocation that was imported as result of getCrossTUDefinition. The returned SourceLocation is in the context of the (original) SourceManager for the original source file. Additionally the ASTUnit object for that source file is returned. This is needed to get a SourceManager to operate on with the returned source location. The new function works if multiple different source files are loaded with the same CrossTU context. This patch can be treated as part of a bigger change that is needed to improve macro expansion handliong at plist generation. Reviewers: martong, shafik, a_sidorin, xazax.hun Reviewed By: martong Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64554
  87. [ASTUnit] Fix a regression in cached completions Summary: After r345152 cached completions started adding namespaces after nested name specifiers, e.g. in `some_name::^` The CCC_Symbol indicates the completed item cannot be a namespace (it is described as being "a type, a function or a variable" in the comments). Therefore, 'nested specifier' completions should only be added from cache when the context is CCC_SymbolOrNewName (which roughly seems to indicate that a nested name specifier is allowed). Fixes https://bugs.llvm.org/show_bug.cgi?id=42646 Reviewers: kadircet, sammccall Reviewed By: kadircet, sammccall Subscribers: arphaman, nik, sammccall, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64918
  88. [CMake] Don't set Python_ADDITIONAL_VERSIONS Until recently, Python_ADDITIONAL_VERSIONS was used to limit LLVM's Python support to 2.7. Now that both LLVM and LLDB both support Python 3, there's no longer a need to put an arbitrary limit on this. However, instead of removing the variable, r365692 expanded the list, which has the (presumably unintentional) side-effect of expression preference for Python 3. Instead, as Michal proposed in the original code review, we should just not set the list at all, and let CMake pick whatever Python interpreter you have in your path. This patch removes the Python_ADDITIONAL_VERSIONS variable in llvm, clang and lld. I've also updated the docs with the default behavior and how to force a different Python version to be used. Differential revision: https://reviews.llvm.org/D64894
  89. [clangd] Suppress unwritten scopes when expanding auto. Summary: otherwise the replacement will break the code. Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64627
  90. [ELF][PPC] Delete ppc64-dynamic-relocations.s I forgot to delete it in r366424.
  91. Revert "[DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame." This reverts commit 17e3cbf5fe656483d9016d0ba9e1d0cd8629379e.
  92. [clangd] Disable DumpRecordLayout by default per https://bugs.llvm.org/show_bug.cgi?id=42670
  93. [DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame. It is necessary to generate fixups in .debug_frame or .eh_frame as relaxation is enabled due to the address delta may be changed after relaxation. There is an opcode with 6-bits data in debug frame encoding. So, we also need 6-bits fixup types. Differential Revision: https://reviews.llvm.org/D58335
  94. [X86] EltsFromConsecutiveLoads - support common source loads This patch enables us to find the source loads for each element, splitting them into a Load and ByteOffset, and attempts to recognise consecutive loads that are in fact from the same source load. A helper function, findEltLoadSrc, recurses to find a LoadSDNode and determines the element's byte offset within it. When attempting to match consecutive loads, byte offsetted loads then attempt to matched against a previous load that has already been confirmed to be a consecutive match. Next step towards PR16739 - after this we just need to account for shuffling/repeated elements to create a vector load + shuffle. Differential Revision: https://reviews.llvm.org/D64551
  95. [analyzer] Add CTU user docs Reviewers: dkrupp, a_sidorin, Szelethus, NoQ Subscribers: whisperity, xazax.hun, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, gamesh411, Charusso, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64801
  96. [OPENMP][NVPTX]Mark barrier functions calls as convergent. Added convergent attribute to the barrier functions calls for correct optimizations.
  97. Restrict asan + dlopen testcase to x86
  98. [DAGCombine] Pull getSubVectorSrc helper out of narrowInsertExtractVectorBinOp. NFCI. NFC step towards reusing this in other EXTRACT_SUBVECTOR combines.
  99. [FileCheck] Fix numeric variable redefinition Summary: Commit r365249 changed usage of FileCheckNumericVariable to have one instance of that class per variable as opposed to one instance per definition of a given variable as was done before. However, it retained the safety check in setValue that it should only be called with the variable unset, even after r365625. However this causes assert failure when a non-pseudo variable is being redefined. And while redefinition of @LINE at each CHECK line work in the general case, it caused problem when a substitution failed (fixed in r365624) and still causes problem when a CHECK line does not match since @LINE's value is cleared after substitutions in match() happened but printSubstitutions also attempts a substitution. This commit solves the root of the problem by changing setValue to set a new value regardless of whether a value was set or not, thus fixing all the aforementioned issues. Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk Subscribers: hiraditya, llvm-commits, probinson, dblaikie, grimar, arichardson, tra, rnk, kristina, hfinkel, rogfer01, JonChesterfield Tags: #llvm Differential Revision: https://reviews.llvm.org/D64882
  100. Relax regexp to detect failed interception by asan This should fix failed detection on aarch64/ppc64/thumbv8...
  101. [x86] try harder to form LEA from ADD to avoid flag conflicts (PR40483) LEA doesn't affect flags, so use it more liberally to replace an ADD when we know that the ADD operands affect flags. In the motivating example from PR40483: https://bugs.llvm.org/show_bug.cgi?id=40483 ...this lets us avoid duplicating a math op just to avoid flag conflict. As mentioned in the TODO comments, this heuristic can be extended to fire more often if that leads to more improvements. Differential Revision: https://reviews.llvm.org/D64707
  102. [llvm-readelf] - Remove the precompiled binary from gnu-hash-symbols.test I am working on https://bugs.llvm.org/show_bug.cgi?id=42622 and this patch reworks the gnu-hash-symbols.test so that it will be easier to expand it with x86_64 case. Differential revision: https://reviews.llvm.org/D64750
  103. Revert r366422: [OpenCL] Improve destructor support in C++ for OpenCL Reason: this commit causes crashes in the clang compiler when building LLVM Support with libc++, see https://bugs.llvm.org/show_bug.cgi?id=42665 for details.
  104. Bump the trunk version to 10.0.0svn and clear the release notes.
  105. [ELF][PPC] Refactor some ppc64 tests Merge ppc64-dynamic-relocations.s into ppc64-plt-stub.s Add ppc64-tls-ie.s: covers ppc64-initial-exec-tls.s and ppc64-tls-ie-le.s Add ppc64-tls-gd.s: covers ppc64-general-dynamic-tls.s, ppc64-gd-to-ie.s, ppc64-tls-gd-le.s, and ppc64-tls-gd-le-small.s
  106. [ARM][DAGCOMBINE][FIX] PerformVMOVRRDCombine Summary: PerformVMOVRRDCombine ommits adding a offset of 4 to the PointerInfo, when converting a f64 = load[M] to {i32, i32} = {load[M], load[M + 4]} Which would allow the machine scheduller to break dependencies with the second load. - pr42638 Reviewers: eli.friedman, dmgreen, ostannard Reviewed By: ostannard Subscribers: ostannard, javed.absar, kristof.beyls, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64870
  107. [OpenCL] Improve destructor support in C++ for OpenCL Summary: This patch does mainly three things: 1. It fixes a false positive error detection in Sema that is similar to D62156. The error happens when explicitly calling an overloaded destructor for different address spaces. 2. It selects the correct destructor when multiple overloads for address spaces are available. 3. It inserts the expected address space cast when invoking a destructor, if needed, and therefore fixes a crash due to the unmet assertion in llvm::CastInst::Create. The following is a reproducer of the three issues: struct MyType { ~MyType() {} ~MyType() __constant {} }; __constant MyType myGlobal{}; kernel void foo() { myGlobal.~MyType(); // 1 and 2. // 1. error: cannot initialize object parameter of type // '__generic MyType' with an expression of type '__constant MyType' // 2. error: no matching member function for call to '~MyType' } kernel void bar() { // 3. The implicit call to the destructor crashes due to: // Assertion `castIsValid(op, S, Ty) && "Invalid cast!"' failed. // in llvm::CastInst::Create. MyType myLocal; } The added test depends on D62413 and covers a few more things than the above reproducer. Subscribers: yaxunl, Anastasia, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64569
  108. [OpenCL] Update comments/diagnostics to refer to C++ for OpenCL Clang doesn't implement OpenCL C++, change the comments to reflect that. Differential Revision: https://reviews.llvm.org/D64867
  109. [clangd] Added highlightings for template parameters and specializations. Summary: Template parameters and specializations were not being highlighted before. This adds highlightings to those types of tokens by adding two Visit* methods. Reviewers: hokein, sammccall, ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64855
  110. [SCEV] add no wrap flag for SCEVAddExpr. Differential Revision: https://reviews.llvm.org/D64868
  111. [lld] Fix vs-diagnostics-version-script test. NFC. Removed unnecessary llvm-mc call.
  112. [OpenCL][PR42033] Fix addr space deduction with template parameters If dependent types appear in pointers or references we allow addr space deduction because the addr space in template argument will belong to the pointee and not the pointer or reference itself. We also don't diagnose addr space on a function return type after template instantiation. If any addr space for the return type was provided on a template parameter this will be diagnosed during the parsing of template definition. Differential Revision: https://reviews.llvm.org/D62584
  113. Fixup r366333 (require x86 in test) Seems to be required for the other added tests too.
  114. Fix asan infinite loop on undefined symbol Fix llvm#39641 Differential Revision: https://reviews.llvm.org/D63877
  115. [RISCV] Reset NoPHIS MachineFunctionProperty in emitSelectPseudo We insered PHIS were there were none before, so the property must be reset. This error was found on an EXPENSIVE_CHECKS build.
  116. [LoopInfo] Use early return in branch weight update functions. NFC.
  117. [RISCV][DebugInfo] Fix dwarf-riscv-relocs.ll test on Windows Windows sees DW_AT_decl_file (".\dwarf-riscv-relocs.c") while Linux sees DW_AT_decl_file ("./dwarf-riscv-relocs.c"). This fixes a failure introduced in rL366402.
  118. [CodeComplete] Fix ASTUnit cached completion of macros from preamble, broken in r342528 Summary: The problem is the default LoadExternal with no completer, which happens when loading global results. Reviewers: ilya-biryukov, nik Subscribers: arphaman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64864
  119. clang-tidy release notes: Split and order changes by type Patch by Eugene Zelenko!
  120. [NFC][PowerPC] Add the test to test the pass block-placement
  121. [PowerPC][Clang] Remove use of malloc in mm_malloc Remove dependency of malloc in implementation of mm_malloc function in PowerPC intrinsics and alignment assumption on glibc. Reviewed By: Hal Finkel Differential Revision: https://reviews.llvm.org/D64850
  122. [X86] Disable combineConcatVectors for vXi1 vectors. I'm not convinced the code this calls is properly vetted for vXi1 vectors. Experimental vector widening legalization testing for D55251 is now hitting an assertion failure inside EltsFromConsecutiveLoads. This is occurring from a v2i1 load having a store size different than its VT size. Hopefully this commit will keep such issues from happening.
  123. Fix typo in programmer's manual cantFile -> cantFail
  124. [DWARF][RISCV] Add support for RISC-V relocations needed for debug info When code relaxation is enabled many RISC-V fixups are not resolved but instead relocations are emitted. This happens even for DWARF debug sections. Therefore, to properly support the parsing of DWARF debug info we need to be able to resolve RISC-V relocations. This patch adds: * Support for RISC-V relocations in RelocationResolver * DWARF support for two relocations per object file offset * DWARF changes to support relocations in more DIE fields The two relocations per offset change is needed because some RISC-V relocations (used for label differences) come in pairs. Relocations can also be emitted for DWARF fields where relocations were not yet evaluated. Adding relocation support for some of these fields is essencial. On the other hand, LLVM currently emits RISC-V relocations for fixups that could be safely evaluated, since they can never be affected by code relaxations. This patch also adds relocation support for the fields affected by those extraneous relocations (the DWARF unit entry Length, and the DWARF debug line entry TotalLength and PrologueLength), for testing purposes. Differential Revision: https://reviews.llvm.org/D62062 Patch by Luís Marques.
  125. [ELF][test] Merge/rename some basic*.s tests basic64be.s is a big-endian powerpc64 test that just duplicates what basic-ppc64.s does. Extend basic-ppc64.s to add big-endian tests. Delete basic64be.s Rename basic32.s to basic-i386.s
  126. [clangd] Fix Fix -Wunused-lambda-capture after r366339
  127. [RISCV] Re-land r366331 d RISCV to LLVM_ALL_TARGETS *San flagged issues should be now be addressed.
  128. [RISCV] Avoid signed integer overflow UB in RISCVMatInt::generateInstSeq Found by UBSan.
  129. [RISCV] Don't acccess an invalidated iterator in RISCVInstrInfo::removeBranch Issue found by ASan.
  130. [AArch64] Add dependency from AArch64CodeGen to TransformUtils to fix -DBUILD_SHARED_LIBS=on link error after D64173/r366361 This fixes: ld.lld: error: undefined symbol: llvm::findAllocaForValue(llvm::Value*, llvm::DenseMap<llvm::Value*, llvm::Alloc aInst*, llvm::DenseMapInfo<llvm::Value*>, llvm::detail::DenseMapPair<llvm::Value*, llvm::AllocaInst*> >&) >>> referenced by AArch64StackTagging.cpp
  131. [Tests] Add a test showing how we handle overaligned allocas w/ no-realign-stack (At the moment, we ignore the alignment requirement.)
  132. [analyzer] MallocChecker: Prevent Integer Set Library false positives Summary: Integer Set Library using retain-count based allocation which is not modeled in MallocChecker. Reviewed By: NoQ Tags: #clang Differential Revision: https://reviews.llvm.org/D64680
  133. Changes to display code view debug info type records in hex format
  134. hwasan: Use C++ driver for cfi.cc test. It turns out that this test was only passing by accident. It was relying on the optimizer to remove the only reference to A's vtable by realizing that the CFI check will always fail. The vtable contains a reference to RTTI in libc++, which will be unresolved because the C driver won't link against it. This was found by my prototype implementation of HWASAN for globals, which happens to end up preserving the reference. Differential Revision: https://reviews.llvm.org/D64890
  135. Make DT a transitive dependency of LI. Summary: LoopInfoWrapperPass::verify uses DT, which means DT must be alive even if it has no direct users. Fixes a crash in expensive checks mode. Reviewers: pcc, leonardchan Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64896
  136. [llvm-bcanalyzer] Fixed error 'Expected<T> must be checked before access or destruction' After rL365286 I had failing test: LLVM :: tools/gold/X86/v1.12/thinlto_emit_linked_objects.ll It was failing with the output: $ llvm-bcanalyzer --dump llvm/test/tools/gold/X86/v1.12/Output/thinlto_emit_linked_objects.ll.tmp3.o.thinlto.bc Expected<T> must be checked before access or destruction. Unchecked Expected<T> contained error: Unexpected end of file reading 0 of 0 bytesStack dump: Change-Id: I07e03262074ea5e0aae7a8d787d5487c87f914a2
  137. llvm-pdbdump: Fix several smaller issues with injected source compression handling - getCompression() used to return a PDB_SourceCompression even though the docs for IDiaInjectedSource are explicit about the return value being compiler-dependent. Return an uint32_t instead, and make the printing code handle unknown values better by printing "Unknown" and the int value instead of not printing any compression. - Print compressed contents as hex dump, not as string. - Add compression type "DotNet", which is used (at least) by csc.exe, the C# compiler. Also add a lengthy comment describing the stream contents (derived from looking at the raw hex contents long enough to see the GUIDs, which led me to the roslyn and mono implementations for handling this). - The native injected source dumper was dumping the contents of the whole data stream -- but csc.exe writes a stream that's padded with zero bytes to the next 512 boundary, and the dia api doesn't display those padding bytes. So make NativeInjectedSource::getCode() do the same thing. Differential Revision: https://reviews.llvm.org/D64879
  138. [AMDGPU] Simplify AMDGPUInstPrinter::printRegOperand() Differential Revision: https://reviews.llvm.org/D64892
  139. AMDGPU: Set inaccessiblememonly on sendmsg intrinsics
  140. [X86] Make sure we mark 128/256 MLOAD as Legal with VLX when min-legal-vector-width=256 is in effect. This started triggering an assertion after r364718 when we made these Custom under AVX2.
  141. gn build: Merge r366361.
  142. hwasan: Initialize the pass only once. This will let us instrument globals during initialization. This required making the new PM pass a module pass, which should still provide access to analyses via the ModuleAnalysisManager. Differential Revision: https://reviews.llvm.org/D64843
  143. [NFC][ScopBuilder] Move buildSchedule and its callees to ScopBuilder or ScopHelper Scope of changes: 1. Moved buildSchedule functions to ScopBuilder. 2. Moved combineInSequence function to ScopBuilder. 3. Moved mapToDimension function to ScopBuilder. 4. Moved LoopStackTy to ScopBuilder. 5. Moved getLoopSurroundingScop to ScopHelper. 6. Moved getNumBlocksInLoop to ScopHelper. 7. Moved getNumBlocksInRegionNode to ScopHelper. 8. Moved getRegionNodeLoop to ScopHelper. Differential Revision: https://reviews.llvm.org/D64223
  144. [AMDGPU] Stop special casing flat_scratch for register name Differential Revision: https://reviews.llvm.org/D64885
  145. Speculative fix for stack-tagging.ll failure. Depending on the evaluation order of function call arguments, the current code may insert a use before def.
  146. [NFC][ScopBuilder]Move finalizeAccesses and its callees to ScopBuilder Scope of changes: 1) Moved finalizeAccesses to ScopBuilder 2) Moved updateAccessDimensionality to ScopBuilder 3) Moved foldSizeConstantsToRight to ScopBuilder 4) Moved foldSizeConstantsToRight to ScopBuilder 5) Moved assumeNoOutOfBounds to ScopBuilder 6) Moved markFortranArrays to ScopBuilder 7) Added iterator range for AccessFunctions vector. Differential Revision: https://reviews.llvm.org/D63794
  147. [Attributor][NFC] Remove unnecessary debug output
  148. Adding inline comments to code view type record directives for better readability
  149. [PEI] Don't re-allocate a pre-allocated stack protector slot The LocalStackSlotPass pre-allocates a stack protector and makes sure that it comes before the local variables on the stack. We need to make sure that later during PEI we don't re-allocate a new stack protector slot. If that happens, the new stack protector slot will end up being **after** the local variables that it should be protecting. Therefore, we would have two slots assigned for two different stack protectors, one at the top of the stack, and one at the bottom. Since PEI will overwrite the assigned slot for the stack protector, the load that is used to compare the value of the stack protector will use the slot assigned by PEI, which is wrong. For this, we need to check if the object is pre-allocated, and re-use that pre-allocated slot. Differential Revision: https://reviews.llvm.org/D64757
  150. [CodeGen] Add stack protector tests where the guard gets re-assigned In preparation of a fix, add tests for multiple backends.
  151. [CodeGen][NFC] Simplify checks for stack protector index checking Use `hasStackProtectorIndex()` instead of `getStackProtectorIndex() >= 0`.
  152. Renamed and changed the wording of warn_cconv_ignored As discussed in D64780 the wording of this warning message is being changed to say 'is not supported' instead of 'ignored', and the diag ID itself is being changed to warn_cconv_not_supported.
  153. GlobalISel: Handle widenScalar of arbitrary G_MERGE_VALUES sources Extract the sources to the GCD of the original size and target size, padding with implicit_def as necessary. Also fix the case where the requested source type is wider than the original result type. This was ignoring the type, and just using the destination. Do the operation in the requested type and truncate back.
  154. GlobalISel: Handle more cases for widenScalar of G_MERGE_VALUES Use an anyext to the requested type for the leftover operand to produce a slightly wider type, and then truncate the final merge. I have another implementation almost ready which handles arbitrary widens, but I think it produces worse code in this example (which I think is 90% due to not folding redundant copies or folding out implicit_def users), so I wanted to add this as a baseline first.
  155. Basic MTE stack tagging instrumentation. Summary: Use MTE intrinsics to tag stack variables in functions with sanitize_memtag attribute. Reviewers: pcc, vitalybuka, hctim, ostannard Subscribers: srhines, mgorny, javed.absar, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64173
  156. Basic codegen for MTE stack tagging. Implement IR intrinsics for stack tagging. Generated code is very unoptimized for now. Two special intrinsics, llvm.aarch64.irg.sp and llvm.aarch64.tagp are used to implement a tagged stack frame pointer in a virtual register. Differential Revision: https://reviews.llvm.org/D64172
  157. [libc++] XFAIL a test that does not behave properly on older Clang rdar://53015486
  158. [lld][WebAssembly] Fix handling of comdat functions in init array. When hidden symbols are discarded by comdat rules we still want to create a local defined symbol, otherwise `Symbol::isDiscarded()` relies on begin able to check `getChunk->discarded`. This is a followup on rL362769. The comdat.ll test was previously GC'ing the `__wasm_call_ctors` functions so `do_init` was not actually being included in the link. Once that function was included in triggered the crash bug that this change addresses. Fixes: https://github.com/emscripten-core/emscripten/issues/8981 Differential Revision: https://reviews.llvm.org/D64872
  159. [OPENMP]Fix PR42632: crash on the analysis of the OpenMP constructs. Fixed processing of the CapturedStmt children to fix the crash of the OpenMP constructs during analysis.
  160. Revert [AArch64] Add support for Transactional Memory Extension (TME) This reverts r366322 (git commit 4b8da3a503e434ddbc08ecf66582475765f449bc)
  161. [clang-tidy] Exclude forward decls from fuchsia-multiple-inheritance Addresses b39770. Differential Revision: https://reviews.llvm.org/D64813
  162. [clang-tidy] Fix crash on end location inside macro Summary: Lexer::getLocForEndOfToken is defined to return an invalid location if the given location is inside a macro. Other checks conditionally warn based off location validity. Updating this check to do the same. Reviewers: JonasToth, aaron.ballman, nickdesaulniers Reviewed By: nickdesaulniers Subscribers: lebedev.ri, nickdesaulniers, xazax.hun, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64607
  163. [Docs][OpenCL] Documentation of C++ for OpenCL mode Added documentation of C++ for OpenCL mode into Clang User Manual and Language Extensions document. Differential Revision: https://reviews.llvm.org/D64418
  164. [AMDGPU] Tune inlining parameters for AMDGPU target Summary: Since the target has no significant advantage of vectorization, vector instructions bous threshold bonus should be optional. amdgpu-inline-arg-alloca-cost parameter default value and the target InliningThresholdMultiplier value tuned then respectively. Reviewers: arsenm, rampitec Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, eraman, hiraditya, haicheng, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64642
  165. [ORC] Add deprecation warnings to ORCv1 layers and utilities. Summary: ORCv1 is deprecated. The current aim is to remove it before the LLVM 10.0 release. This patch adds deprecation attributes to the ORCv1 layers and utilities to warn clients of the change. Reviewers: dblaikie, sgraenitz, AlexDenisov Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64609
  166. [RISCV] Revert r366331 as it exposed some sanitizer failures See <http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/33612>.
  167. [ASan] Support `{f}puts(NULL)` on Darwin On Darwin, the man page states that "both fputs() and puts() print `(null)' if str is NULL." rdar://48227136 Reviewed By: Lekensteyn Differential Revision: https://reviews.llvm.org/D64773
  168. AMDGPU: Use getTargetConstant Avoids creating an extra intermediate mov.
  169. Fix MSVC 'implicitly capture' compile error. NFCI.
  170. [clangd] Type hierarchy: don't resolve parents if the client only asked for children Summary: Also reorganize the code for computing supertypes to make it more symmetric to subtypes. Reviewers: kadircet Reviewed By: kadircet Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64613
  171. [clang-tidy] Adjust location of namespace comment diagnostic Summary: If there is no comment, place it at the closing brace of a namespace definition. Previously it was placed at the next character after the closing brace. The new position produces a better location for highlighting in clangd and does not seem to make matters worse for clang-tidy. Reviewers: alexfh, hokein Reviewed By: alexfh, hokein Subscribers: xazax.hun, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64861
  172. [OPENMP]Fix crash in LoopCounterRefChecker when MemberExpr is not Var or Field checkDecl is only valid for VarDecls or FieldDecls, since getCanonicalDecl expects only these. Prevent other Decl kinds (such as CXXMethodDecls and EnumConstantDecls) from entering and asserting. Differential Revision: https://reviews.llvm.org/D64842
  173. [Attributor] Deduce "willreturn" function attribute Summary: Deduce the "willreturn" attribute for functions. For now, intrinsics are not willreturn. More annotation will be done in another patch. Reviewers: jdoerfert Subscribers: jvesely, nhaehnle, nicholas, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D63046
  174. [llvm-ar][test] Add tests failing on Darwin These tests that failed on Darwin but passed on other machines due to the default archive format differing on a Darwin machine, and what looks to be bugs in the output of this format. I can not investigate these issue further so the tests are considered expected failures on Darwin. Differential Revision: https://reviews.llvm.org/D64802
  175. [lld] Add Visual Studio compatible diagnostics Summary: Add a --vs-diagnostics flag that alters the format of diagnostic output to enable source hyperlinks in Visual Studio. Differential Revision: https://reviews.llvm.org/D58484 Reviewed by: ruiu
  176. [ASTImporter] Fix structural eq of lambdas Summary: The structural equivalence check reported false eq between lambda classes with different parameters in their call signature. The solution is to check the methods for equality too in case of lambda classes. Reviewers: a_sidorin, a.sidorin Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64075
  177. [RISCV] Add RISCV to LLVM_ALL_TARGETS so it s built by default This follows the RFC <http://lists.llvm.org/pipermail/llvm-dev/2019-July/133724.html>. Follow-on commits will add appropriate release notes changes etc. Pushing this now and in a minimal form so there is reasonable time before 9.0 branches to resolve any issues arising from e.g. the backend being exposed on different sanitizer setups. The current builder for RISC-V is on the staging build-bot <http://lab.llvm.org:8014/builders/llvm-riscv-linux>, however with the RISCV backend being built by default it won't provide any real additional coverage. We will shortly set up a builder that runs the test-suite in qemu-user.
  178. [RISCV][NFC] Remove outdated TODO from test/CodeGen/RISCV/dwarf-eh.ll
  179. [AsmPrinter] Make the encoding of call sites in .gcc_except_table configurable and use for RISC-V The original behavior was to always emit the offsets to each call site in the call site table as uleb128 values, however on some architectures (eg RISCV) these uleb128 offsets into the code cannot always be resolved until link time (because relaxation will invalidate any calculated offsets), and there are no appropriate relocations for uleb128 values. As a consequence it needs to be possible to specify an alternative. This also switches RISCV to use DW_EH_PE_udata4 for call side encodings in .gcc_except_table Differential Revision: https://reviews.llvm.org/D63415 Patch by Edward Jones.
  180. Mips: Remove immarg from copy and insert intrinsics These intrinsics do in fact work with non-constant index arguments. These are lowered to either the generic ISD::INSERT_VECTOR_ELT/ISD::EXTRACT_VECTOR_ELT, or to VEXTRACT_SEXT_ELT. The handling of these all accept variable indexes. Turning these into generic instructions which do allow variables introduces complications in a future change to immarg handling. Since these just turn into generic instructions, these are kind of pointless and should probably just be autoupgraded to extractelement/insertelement.
  181. [RISCV] Set correct encodings for DWARF exception handling This patch sets correct encodings for DWARF exception handling for RISC-V (other than call site encoding, which must be udata4 rather than uleb128 and is handled by D63415). This has the same intend as D63409, except this version matches GCC/binutils behaviour which uses the same encodings regardless of PIC/non-PIC and medlow/medany code model.
  182. [RISCV][NFC] Add tests that capture current encodings for DWARF EH Items which are known to be wrong/different vs GCC are marked as TODO and will be address in follow-up patches.
  183. [ASTImporter] Fix LLDB lookup in transparent ctx and with ext src Summary: With LLDB we use localUncachedLookup(), however, that fails to find Decls when a transparent context is involved and the given DC has external lexical storage. The solution is to use noload_lookup, which works well with transparent contexts. But, we cannot use only the noload_lookup since the slow case of localUncachedLookup is still needed in some other cases. These other cases are handled in ASTImporterLookupTable, but we cannot use that with LLDB since that traverses through the AST which initiates the load of external decls again via DC::decls(). We must avoid loading external decls during the import becuase ExternalASTSource is implemented with ASTImporter, so external loads during import results in uncontrolled and faulty import. Reviewers: shafik, teemperor, jingham, clayborg, a_sidorin, a.sidorin Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits, lldb-commits Tags: #clang, #lldb Differential Revision: https://reviews.llvm.org/D61333
  184. [llvm-ar][test] \r\n -> \n Also simplify some empty output tests with 'count 0'
  185. [AMDGPU] Optimize atomic AND/OR/XOR Summary: Extend the atomic optimizer to handle AND, OR and XOR. Reviewers: arsenm, sheredom Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64809
  186. [AArch64] Add support for Transactional Memory Extension (TME) TME is a future architecture technology, documented in https://developer.arm.com/architectures/cpu-architecture/a-profile/exploration-tools https://developer.arm.com/docs/ddi0601/a More about the future architectures: https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/new-technologies-for-the-arm-a-profile-architecture This patch adds support for the TME instructions TSTART, TTEST, TCOMMIT, and TCANCEL and the target feature/arch extension "tme". It also implements TME builtin functions, defined in ACLE Q2 2019 (https://developer.arm.com/docs/101028/latest) Patch by Javed Absar and Momchil Velikov Differential Revision: https://reviews.llvm.org/D64416
  187. [clangd] Force the required interpretation of #import on windows tests. Summary: NFC but should fix a bunch of tests. Reviewers: kadircet Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64857
  188. [clangd] Handle windows line endings in QueryDriver Summary: fixes second case of https://github.com/clangd/clangd/issues/93 Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64789
  189. PowerPC: Fix register spilling for SPE registers Summary: Missed in the original commit, use the correct callee-saved register list for spilling, instead of the standard SVR432 list. This avoids needlessly spilling the SPE non-volatile registers when they're not used. As part of this, also add where missing, and sort, the spill opcode checks for SPE and SPE4 register classes. Reviewers: nemanjai, hfinkel, joerg Subscribers: kbarton, jsji, llvm-commits Differential Revision: https://reviews.llvm.org/D56703
  190. PowerPC/SPE: Fix load/store handling for SPE Summary: Pointed out in a comment for D49754, register spilling will currently spill SPE registers at almost any offset. However, the instructions `evstdd` and `evldd` require a) 8-byte alignment, and b) a limit of 256 (unsigned) bytes from the base register, as the offset must fix into a 5-bit offset, which ranges from 0-31 (indexed in double-words). The update to the register spill test is taken partially from the test case shown in D49754. Additionally, pointed out by Kei Thomsen, globals will currently use evldd/evstdd, though the offset isn't known at compile time, so may exceed the 8-bit (unsigned) offset permitted. This fixes that as well, by forcing it to always use evlddx/evstddx when accessing globals. Part of the patch contributed by Kei Thomsen. Reviewers: nemanjai, hfinkel, joerg Subscribers: kbarton, jsji, llvm-commits Differential Revision: https://reviews.llvm.org/D54409
  191. [MIPS GlobalISel] ClampScalar and select pointer G_ICMP Add narrowScalar to half of original size for G_ICMP. ClampScalar G_ICMP's operands 2 and 3 to to s32. Select G_ICMP for pointers for MIPS32. Pointer compare is same as for integers, it is enough to declare them as legal type. Differential Revision: https://reviews.llvm.org/D64856
  192. [AArch64] Consistent types and naming for AArch64 target features (NFC) Differential Revision: https://reviews.llvm.org/D64415 Committed as obvious.
  193. AMDGPU/GFX10: Apply the VMEM-to-scalar-write hazard also to writes to EXEC Summary: Change-Id: I854fbf7d48e937bef9f8f3f5d0c8aeb970652630 Reviewers: rampitec, mareko Subscribers: arsenm, kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64807 Change-Id: I4405b3a7f84186acea5a78d291bff71056e745fc
  194. AMDGPU: Improve alias analysis for GDS Summary: GDS cannot alias anything else. Original patch by: Marek Olšák Reviewers: arsenm, mareko Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, Petar.Avramovic, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64114 Change-Id: I07bfbd96f5d5c37a6dfba7997df12f291dd794b0
  195. [TableGen] Do not set ReadNone attribute on intrinsics with side effects If an intrinsic is defined without outputs, but having side effects, it still can be removed completely from the program. This patch makes TableGen not set Attribute::ReadNone for intrinsics which are declared with IntrHasSideEffects. Differential Revision: https://reviews.llvm.org/D64414
  196. [clangd] Fix error message in tweaktests to be useful. NFC
  197. [llvm-ar][test] Add coverage for replace and update key letters Some more tests to increase llvm-ar test coverage, this time for replace 'r' and update 'u'. Differential Revision: https://reviews.llvm.org/D64803
  198. [ARM GlobalISel] Cleanup CallLowering. NFC Migrate CallLowering::lowerReturnVal to use the same infrastructure as lowerCall/FormalArguments and remove the now obsolete code path from splitToValueTypes. Forgot to push this earlier.
  199. [ELF] Delete redundant pageAlign at PT_GNU_RELRO boundaries after D58892 Summary: After D58892 split the RW PT_LOAD on the PT_GNU_RELRO boundary, the new layout is: PT_LOAD(PT_GNU_RELRO(.data.rel.ro .bss.rel.ro)) PT_LOAD(.data. .bss) The two pageAlign() calls at PT_GNU_RELRO boundaries are redundant due to the existence of PT_LOAD. Reviewers: grimar, peter.smith, ruiu, espindola Reviewed By: ruiu Subscribers: sfertile, atanasyan, emaste, arichardson, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64854
  200. [OpenCL][Sema] Minor refactoring and constraint checking Summary: Simplify code a bit and add assertion to address post-landing comments from D64083. Subscribers: yaxunl, Anastasia, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64804
  201. [Driver] Enable __cxa_atexit on Solaris Starting with Solaris 11.4 (which is now the required minimal version), Solaris does support __cxa_atexit. This patch reflects that. One might consider removing the affected tests altogether instead of inverting them, as is done on other targets. Besides, this lets two ASan tests PASS: AddressSanitizer-i386-sunos :: TestCases/init-order-atexit.cc AddressSanitizer-i386-sunos-dynamic :: TestCases/init-order-atexit.cc Tested on x86_64-pc-solaris2.11 and sparcv9-sun-solaris2.11. Differential Revision: https://reviews.llvm.org/D64491
  202. Replace CRLF with LF.
  203. [mips] Remove redundant test case. NFC The `inlineasm-constraint-reg64.ll` test checks the same functionality.
  204. [mips] Name inline asm constraint test cases in a uniform manner. NFC
  205. [mips] Use mult/mflo pattern on 64-bit targets prior to MIPS64 The `MUL` instruction is available starting from the MIPS32/MIPS64 targets.
  206. [mips] Implement .cplocal directive This directive forces to use the alternate register for context pointer. For example, this code: .cplocal $4 jal foo expands to: ld $25, %call16(foo)($4) jalr $25 Differential Revision: https://reviews.llvm.org/D64743
  207. [mips] Support the "o" inline asm constraint As well as other LLVM targets we do not handle "offsettable" memory addresses in any special way. In other words, the "o" constraint is an exact equivalent of the "m" one. But some existing code require the "o" constraint support. This fixes PR42589. Differential Revision: https://reviews.llvm.org/D64792
  208. [LoopInfo] Fix getUniqueNonLatchExitBlocks It is possible that exit block has two predecessors and one of them is a latch block while another is not. Current algorithm is based on the assumption that all exits are dedicated and therefore we can check only first predecessor of loop exit to find all unique exits. However if we do not consider latch block and it is first predecessor of some exit then this exit will be found. Regression test is added. As a side effect of algorithm re-writing, the restriction that all exits are dedicated is eliminated. Reviewers: reames, fhahn, efriedma Reviewed By: efriedma Subscribers: llvm-commits Differential Revision: https://reviews.llvm.org/D64787
  209. Update email address.
  210. Fix more -Werror issues with obsequi.
  211. gn build: Merge r366265
  212. gn build: Merge r366216
  213. Obsequi: fix implicit declaration of a function, breaks -Werror builds.
  214. AMDGPU: Add some missing builtins
  215. Fix OpenCLCXX test on 32-bit Windows where thiscall is present
  216. [AMDGPU] Autogenerate register asm names Differential Revision: https://reviews.llvm.org/D64839
  217. Fix darwin-ld.c if dsymutil.exe exists on PATH
  218. ARM: Fix missing immarg for space intrinsic
  219. GlobalISel: Add overload of handleAssignments with CCState AMDGPU needs to allocate special argument registers separately from the user function argument list, so needs direct control over the CCState. The ArgLocs argument is only really necessary because CCState doesn't allow access to it.
  220. [TableGen] Generate offsets into a flat array for getOperandType Rather than an array of std::initializer_list, generate a table of offsets and a flat array of the operands for getOperandType. This is a bit more efficient on platforms that don't manage to get the array of inintializer_lists initialized at link time (I'm looking at you macOS). It's also quite quite a bit faster to compile.
  221. Enable the obsequi application for Darwin. It seems to run with no issues.
  222. Fix a typo in target features There was a slight typo in r364352 that ended up causing our backend to complain on some x86 Android builds. This CL fixes that. Differential Revision: https://reviews.llvm.org/D64781
  223. [WebAssembly] Compile all TLS on Emscripten as local-exec Summary: Currently, on Emscripten, dynamic linking is not supported with threads. This means that if thread-local storage is used, it must be used in a statically-linked executable. Hence, local-exec is the only possible model. This diff compiles all TLS variables to use local-exec on Emscripten as a temporary measure until dynamic linking is supported with threads. The goal for this is to allow C++ types with constructors to be thread-local. Currently, when `clang` compiles a `thread_local` variable with a constructor, it generates `__tls_guard` variable: @__tls_guard = internal thread_local global i8 0, align 1 As no TLS model is specified, this is treated as general-dynamic, which we do not support (and cannot support without implementing dynamic linking support with threads in Emscripten). As a result, any C++ constructor in `thread_local` variables would not compile. By compiling all `thread_local` as local-exec, `__tls_guard` will compile and we can support C++ constructors with TLS without implementing dynamic linking with threads. Depends on D64537 Reviewers: tlively, aheejin, sbc100 Reviewed By: aheejin Subscribers: dschuff, jgravelle-google, hiraditya, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64776
  224. [TableGen] Add "getOperandType" to get operand types from opcode/opidx The InstrInfoEmitter outputs an enum called "OperandType" which gives numerical IDs to each operand type. This patch makes use of this enum to define a function called "getOperandType", which allows looking up the type of an operand given its opcode and operand index. Patch by Nicolas Guillemot. Thanks! Differential Revision: https://reviews.llvm.org/D63320
  225. Add REQUIRES: x86 to safeseh-no.s test for x86
  226. [WebAssembly] Implement thread-local storage (local-exec model) Summary: Thread local variables are placed inside a `.tdata` segment. Their symbols are offsets from the start of the segment. The address of a thread local variable is computed as `__tls_base` + the offset from the start of the segment. `.tdata` segment is a passive segment and `memory.init` is used once per thread to initialize the thread local storage. `__tls_base` is a wasm global. Since each thread has its own wasm instance, it is effectively thread local. Currently, `__tls_base` must be initialized at thread startup, and so cannot be used with dynamic libraries. `__tls_base` is to be initialized with a new linker-synthesized function, `__wasm_init_tls`, which takes as an argument a block of memory to use as the storage for thread locals. It then initializes the block of memory and sets `__tls_base`. As `__wasm_init_tls` will handle the memory initialization, the memory does not have to be zeroed. To help allocating memory for thread-local storage, a new compiler intrinsic is introduced: `__builtin_wasm_tls_size()`. This instrinsic function returns the size of the thread-local storage for the current function. The expected usage is to run something like the following upon thread startup: __wasm_init_tls(malloc(__builtin_wasm_tls_size())); Reviewers: tlively, aheejin, kripken, sbc100 Subscribers: dschuff, jgravelle-google, hiraditya, sunfish, jfb, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D64537
  227. AMDGPU: Partially revert r366250 GCCBuiltin doesn't work for these, because they have a mangled type (although they arguably should not).
  228. [ORC][docs] Fix an RST error: the code-block directive needs a newline after it.
  229. [ORC][docs] Trim ORCv1 to ORCv2 transition section, add a how-to section.
  230. [x86] use more phadd for reductions This is part of what is requested by PR42023: https://bugs.llvm.org/show_bug.cgi?id=42023 There's an extension needed for FP add, but exactly how we would specify that using flags is not clear to me, so I left that as a TODO. We're still missing patterns for partial reductions when the input vector is 256-bit or 512-bit, but I think that's a failure of vector narrowing. If we can reduce the widths, then this matching should work on those tests. Differential Revision: https://reviews.llvm.org/D64760
  231. [clang-format] Don't detect call to ObjC class method as C++11 attribute specifier Summary: Previously, clang-format detected something like the following as a C++11 attribute specifier. @[[NSArray class]] instead of an array with an Objective-C method call inside. In general, when the attribute specifier checking runs, if it sees 2 identifiers in a row, it decides that the square brackets represent an Objective-C method call. However, here, `class` is tokenized as a keyword instead of an identifier, so this check fails. To fix this, the attribute specifier first checks whether the first square bracket has an "@" before it. If it does, then that square bracket is not the start of a attribute specifier because it is an Objective-C array literal. (The assumption is that @[[.*]] is not valid C/C++.) Contributed by rkgibson2. Reviewers: benhamilton Reviewed By: benhamilton Subscribers: aaron.ballman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64632
  232. [NFC][ScopBuilder] Move addUserContext to ScopBuilder Scope of changes: 1) Moved addUserContext to ScopBuilder. 2) Moved command line option UserContextStr to ScopBuilder. Differential Revision: https://reviews.llvm.org/D63740
  233. [clang-tidy] initial version of readability-convert-member-functions-to-static Summary: Finds non-static member functions that can be made ``static``. I have run this check (repeatedly) over llvm-project. It made 1708 member functions ``static``. Out of those, I had to exclude 22 via ``NOLINT`` because their address was taken and stored in a variable of pointer-to-member type (e.g. passed to llvm::StringSwitch). It also made 243 member functions ``const``. (This is currently very conservative to have no false-positives and can hopefully be extended in the future.) You can find the results here: https://github.com/mgehre/llvm-project/commits/static_const_eval Reviewers: alexfh, aaron.ballman Subscribers: mgorny, xazax.hun, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D61749
  234. DWARF: Skip zero column for inline call sites D64033 <https://reviews.llvm.org/D64033> added DW_AT_call_column for inline sites. However, that change wasn't aware of "-gno-column-info". To avoid adding column info when "-gno-column-info" is used, now DW_AT_call_column is only added when we have non-zero column (when "-gno-column-info" is used, column will be zero). Patch by Wenlei He! Differential Revision: https://reviews.llvm.org/D64784
  235. [libcxx] Rejigger test for destroying delete feature-test macros In r361572, we introduced library support for C++20 destroying delete and decided to only define the library feature-test macro when the compiler supports the underlying language feature. This patch reworks the tests to mirror that.
  236. [NFC][ScopBuilder] Move buildAliasChecks and its implementing methods to ScopBuilder Scope of changes: 1) Moved buildAliasChecks to ScopBuilder. 2) Moved buildAliasGroup to ScopBuilder. 3) Moved buildAliasGroups to ScopBuilder. 4) Moved buildAliasGroupsForAccesses to ScopBuilder. 5) Moved splitAliasGroupsByDomain to ScopBuilder. 6) Moved addNonEmptyDomainConstraints to ScopBuilder. 7) Moved buildMinMaxAccess to ScopBuilder. 8) Moved calculateMinMaxAccess to ScopBuilder. 9) Moved getAccessDomain to ScopBuilder. 10) Moved command line options used only by buildAliasChecks functions to ScopBuilder. 11) Refactored buildAliasGroup function. Added addAliasGroup function to Scop class for pushing back calculated min/max accesses. 12) Added function incrementNumberOfAliasingAssumptions which increments number of statistic variable AssumptionsAliasing. AssumptionsAliasing variable is defined by STATISTIC macro inside ScopInfo.cpp and it is also used by function trackAssumption from Scop class. 13) Added reference to OptimizationRemarkEmitter to ScopBuilder class. 14) Moved calculateMinMaxAccess function to ScopBuilder class. Differential Revision: https://reviews.llvm.org/D63693
  237. [NFC][ScopBuilder] Move addRecordedAssumption to ScopBuilder Scope of changes: 1) Moved addRecordedAssumptions to ScopBuilder. 2) Moved Assumption struct outside Scop class. 3) Refactored addRecordedAssumptions function. Replaced while loop by for range loop. 4) Added function to clear processed Assumptions. Differential Revision: https://reviews.llvm.org/D63572
  238. [libc++] Add missing UNSUPPORTED for CTAD tests The tests for unordered_set and unordered_multiset were missing UNSUPPORTED markup for Apple Clang 9.1, which is still being used on some CI bots.
  239. [TSan] Improve handling of stack pointer mangling in {set,long}jmp, pt.6 Cleanup ARM64 assembly after removing unnecessary computation of mangled stack pointer in previous commit.
  240. AMDGPU/GlobalISel: Select G_ASHR
  241. AMDGPU/GlobalISel: Select G_LSHR
  242. [PowerPC][HTM] Fix impossible reg-to-reg copy assert with ttest builtin Summary: This is exposed by our internal testing. The reduced testcase will assert with "Impossible reg-to-reg copy" We can't use COPY to do 32-bit to 64-bit conversion. Reviewers: kbarton, hfinkel, nemanjai Reviewed By: hfinkel Subscribers: hiraditya, MaskRay, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64499
  243. AMDGPU/GlobalISel: Select G_SHL I think this manages to not break the DAG handling with the divergent predicates because the stadalone divergent patterns end up with a higher priority than the pattern on the instruction definition. The 16-bit versions don't work yet.
  244. [GWP-ASan] Add thread ID to PRNG seed. Summary: Adds thread ID to PRNG seed for increased entropy. In particular, this allows multiple runs in quick succession that will have different PRNG seeds, allowing for better demos/testing. Reviewers: kcc Reviewed By: kcc Subscribers: kubamracek, #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D64453
  245. [AMDGPU] Change register type for v32 vectors When it is AReg_1024 this results in unnecessary copying into AGPRs of a 32 element vectors even though they are not intended for an mfma instruction. Differential Revision: https://reviews.llvm.org/D64815
  246. Fix -Wreturn-type warning. NFC.
  247. AMDGPU: Fix some missing GCCBuiltin declarations
  248. AMDGPU/GlobalISel: Fix selection of private stores
  249. AMDGPU/GlobalISel: Select private loads
  250. AMDGPU/GlobalISel: Select flat stores
  251. Mark new test as requiring an x86 backend for LTO native object generation
  252. Fix linkrepro.test after safeseh:no change Add the @feat.00 flag to the input.
  253. AMDGPU: Add register classes to flat store patterns For some reason GlobalISelEmitter needs register classes to import these, although it works for the load patterns.
  254. [IndVars] Speculative fix for an assertion failure seen in bots I don't have an IR sample which is actually failing, but the issue described in the comment is theoretically possible, and should be guarded against even if there's a different root cause for the bot failures.
  255. AMDGPU: Replace store PatFrags Convert the easy cases to formats understood for GlobalISel.
  256. [COFF] Implement /safeseh:no and check @feat.00 flags by default Summary: Fixes PR41828. Before this, LLD always emitted SafeSEH chunks and defined __safe_se_handler_table & size. Now, /safeseh:no leaves those undefined. Additionally, we were checking for the safeseh @feat.00 flag in two places: once to emit errors, and once during safeseh table construction. The error was set up to be off by default, but safeseh is supposed to be on by default. I combined the two checks, so now LLD emits an error if an input object lacks @feat.00 and safeseh is enabled. This caused the majority of 32-bit LLD tests to fail, since many test input object files lack @feat.00 symbols. I explicitly added -safeseh:no to those tests to preserve behavior. Finally, LLD no longer sets IMAGE_DLL_CHARACTERISTICS_NO_SEH if any input file wasn't compiled for safeseh. Reviewers: mstorsjo, ruiu, thakis Reviewed By: ruiu, thakis Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D63570
  257. AMDGPU/GlobalISel: Select flat loads Now that the patterns use the new PatFrag address space support, the only blocker to importing most load patterns is the addressing mode complex patterns.
  258. Teach `llvm-pdbutil pretty -native` about `-injected-sources` `pretty -native -injected-sources -injected-source-content` works with this patch, and produces identical output to the dia version. Differential Revision: https://reviews.llvm.org/D64428
  259. [AMDGPU] Optimize atomic max/min Summary: Extend the atomic optimizer to handle signed and unsigned max and min operations, as well as add and subtract. Reviewers: arsenm, sheredom, critson, rampitec Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64328
  260. AMDGPU: Redefine load PatFrags Rewrite PatFrags using the new PatFrag address space matching in tablegen. These will now work with both SelectionDAG and GlobalISel.
  261. fix unnamed fiefield issue and add tests for __builtin_preserve_access_index intrinsic The original commit is r366076. It is temporarily reverted (r366155) due to test failure. This resubmit makes test more robust by accepting regex instead of hardcoded names/references in several places. This is a followup patch for https://reviews.llvm.org/D61809. Handle unnamed bitfield properly and add more test cases. Fixed the unnamed bitfield issue. The unnamed bitfield is ignored by debug info, so we need to ignore such a struct/union member when we try to get the member index in the debug info. D61809 contains two test cases but not enough as it does not checking generated IRs in the fine grain level, and also it does not have semantics checking tests. This patch added unit tests for both code gen and semantics checking for the new intrinsic. Signed-off-by: Yonghong Song <yhs@fb.com>
  262. AMDGPU: Fix missing immarg for mfma intrinsics
  263. Removed -mno-omit-leaf-frame-pointer from flags. Removes -mno-omit-leaf-frame-pointer from Scudo and GWP-ASan's CFlags. Attempt to fix the sanitizer buildbots.
  264. [TSan] Improve handling of stack pointer mangling in {set,long}jmp, pt.10 Remove now-unused assembly code for determining xor key on Linux/AArch64. This is the final commit of this refactoring.
  265. [AMDGPU] Add the adjusted FP as a livein register. Reviewers: arsenm, rampitec Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64145
  266. [Strict FP] Allow more relaxed scheduling Reimplement scheduling constraints for strict FP instructions in ScheduleDAGInstrs::buildSchedGraph to allow for more relaxed scheduling. Specifially, allow one strict FP instruction to be scheduled across another, as long as it is not moved across any global barrier. Differential Revision: https://reviews.llvm.org/D64412 Reviewed By: cameron.mcinally
  267. Revert [tools] [llvm-nm] Default to reading from stdin not a.out This reverts r365889 (git commit 60c81354b1d3fced1bd284d334f118d2d792ab4b)
  268. Add missing test for r366215
  269. [Remarks] Simplify and refactor the RemarkParser interface Before, everything was based on some kind of type erased parser implementation which container a lot of boilerplate code when multiple formats were to be supported. This simplifies it by: * the remark now owns its arguments * *always* returning an error from the implementation side * working around the way the YAML parser reports errors: catch them through callbacks and re-insert them in a proper llvm::Error * add a CParser wrapper that is used when implementing the C API to avoid cluttering the C++ API with useless state * LLVMRemarkParserGetNext now returns an object that needs to be released to avoid leaking resources * add a new API to dispose of a remark entry: LLVMRemarkEntryDispose
  270. [Remarks][NFC] Combine ParserFormat and SerializerFormat It's useless to have both.
  271. [ADCE] Fix non-deterministic behaviour due to iterating over a pointer set. Original patch by Yann Laigle-Chapuy Differential Revision: https://reviews.llvm.org/D64785
  272. [DAGCombiner] fold (addcarry (xor a, -1), b, c) -> (subcarry b, a, !c) and flip carry. Summary: As per title. DAGCombiner only mathes the special case where b = 0, this patches extends the pattern to match any value of b. Depends on D57302 Reviewers: hfinkel, RKSimon, craig.topper Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D59208
  273. [OpenCL] Fixing sampler initialisations for C++ mode. Allow conversions between integer and sampler type. Differential Revision: https://reviews.llvm.org/D64791
  274. [OPENMP]Add support for analysis of if clauses. Summary: Added support for analysis of if clauses in the OpenMP directives to be able to check for the use of uninitialized variables. Reviewers: NoQ Subscribers: guansong, jfb, jdoerfert, caomhin, kkwli0, cfe-commits Tags: clang Differential Revision: https://reviews.llvm.org/D64646
  275. AMDGPU/GlobalISel: Fix test failures in release build Apparently the check for legal instructions during instruction select does not happen without an asserts build, so these would successfully select in release, and fail in debug. Make s16 and/or/xor legal. These can just be selected directly to the 32-bit operation, as is already done in SelectionDAG, so just make them legal.
  276. [llvm-ar][test] Add to llvm-ar test coverage This change adds tests to cover existing llvm-ar functionality. print.test is omitted due to failing on Darwin. Differential Revision: https://reviews.llvm.org/D64330
  277. [clangd] Added highlighting for the targets in typedefs and using. Summary: In `typedef int A` the `A` was not highlighted previously. This patch gives `A` the same kind of highlighting that the underlying type has (class/enum) (which in this example is no special highlighting because builtins are not handled yet) Will add highlightings for built ins in another patch. Reviewers: hokein, sammccall, ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64754
  278. Reapply [llvm-ar][test] Increase llvm-ar test coverage This reapplies 365316 without extract.test due to failing on Darwin. Differential Revision: https://reviews.llvm.org/D63935
  279. remove a duplicate declaration
  280. Document the LLVM_ENABLE_BINDINGS option
  281. [Object/llvm-readelf/llvm-readobj] - Improve error reporting when e_shstrndx is broken. When e_shstrndx is broken, it is impossible to get a section name. In this patch I improved the error message we show and added tests for Object and for llvm-readelf/llvm-readobj Message was changed in two places: 1) llvm-readelf/llvm-readobj previously used a code from Object/ELF.h, now they have a modified version of it (it has less checks and allows dumping broken things). 2) Code in Object/ELF.h is still used for generic cases. Differential revision: https://reviews.llvm.org/D64714
  282. [Driver] Don't pass --dynamic-linker to ld on Solaris I noticed that clang currently passes --dynamic-linker to ld. This has been the case since Solaris 11 support was added initially back in 2012 by David Chisnall (r150580). I couldn't find any patch submission, let alone a justification, for this, and it seems completely useless: --dynamic-linker is a gld compatibility form of the option, the native option being -I. First of all, however, the dynamic linker passed is simply the default, so there's no reason at all to specify it in the first place. This patch removes passing the option and adjusts the affected testcase accordingly. Tested on x86_64-pc-solaris2.11 and sparcv9-sun-solaris2.11. Differential Revision: https://reviews.llvm.org/D64493
  283. Reapply [llvm-ar][test] Add to MRI test coverage This reapplies 363232 without mri-utf8.test due to failing on Darwin. Differential Revision: https://reviews.llvm.org/D63197
  284. [SemaTemplate] Fix uncorrected typos after pack expansion Summary: This case is particularly important for clangd, as it is triggered after inserting the snippet for variadic functions. Reviewers: kadircet, ilya-biryukov Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64677
  285. [clangd] Don't rebuild background index until we indexed one TU per thread. Summary: This increases the odds that the boosted file (cpp file matching header) will be ready. (It always enqueues first, so it'll be present unless another thread indexes *two* files before the first thread indexes one.) Reviewers: kadircet Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64682
  286. Remove username from git-llvm script, erroneously added in 366197
  287. [AArch64] Implement __jcvt intrinsic from Armv8.3-A The jcvt intrinsic defined in ACLE [1] is available when ARM_FEATURE_JCVT is defined. This change introduces the AArch64 intrinsic, wires it up to the instruction and a new clang builtin function. The __ARM_FEATURE_JCVT macro is now defined when an Armv8.3-A or higher target is used. I've implemented the target detection logic in Clang so that this feature is enabled for architectures from armv8.3-a onwards (so -march=armv8.4-a also enables this, for example). make check-all didn't show any new failures. [1] https://developer.arm.com/docs/101028/latest/data-processing-intrinsics Differential Revision: https://reviews.llvm.org/D64495
  288. [NFC] Test commit: add full stop at end of comment
  289. [clang-scan-view] Force utf-8 when handling report (python2 only) Original patch by random human <random.bored.human@gmail.com> Differential Revision: https://reviews.llvm.org/D64129
  290. [COFF] Rename variale references in comments after VariableName -> variableName change
  291. [WebAssembly] Rename variale references in comments after VariableName -> variableName change
  292. [NFC][PowerPC] Add test case for D64195
  293. [DWARF] Fix the reserved values for unit length in DWARFDebugLine. The DWARF3 documentation had inconsistency concerning the reserved range for unit length values. The issue was fixed in DWARF4. Differential Revision: https://reviews.llvm.org/D64622
  294. [DWARF] Fix an incorrect format specifier. This adjusts the format specifier because PCOffset is uint16_t. Differential Revision: https://reviews.llvm.org/D64620
  295. [DWARF] Simplify DWARFAttribute. NFC. The first argument in the constructor was ignored, and the remaining arguments were always passed as their defaults. Differential Revision: https://reviews.llvm.org/D64407
  296. Finish "Adapt -fsanitize=function to SANITIZER_NON_UNIQUE_TYPEINFO" i.e., recent 5745eccef54ddd3caca278d1d292a88b2281528b: * Bump the function_type_mismatch handler version, as its signature has changed. * The function_type_mismatch handler can return successfully now, so SanitizerKind::Function must be AlwaysRecoverable (like for SanitizerKind::Vptr). * But the minimal runtime would still unconditionally treat a call to the function_type_mismatch handler as failure, so disallow -fsanitize=function in combination with -fsanitize-minimal-runtime (like it was already done for -fsanitize=vptr). * Add tests. Differential Revision: https://reviews.llvm.org/D61479
  297. [NFC][test] Fix for riscv tests. Following tests need updating for: https://reviews.llvm.org/D55277
  298. [X86] In combineStore, don't convert v2f32 load/store pairs to f64 loads/stores. Type legalization can take care of this. This gives DAG combine a little more time with the original types.
  299. [ELF] Fix variable names in comments after VariableName -> variableName change Also fix some typos.
  300. [RISCV] Match GNU tools canonical JALR and add aliases The canonical GNU form of JALR resembles a load/store instruction rather than placing the immediate offset as a separate argument, so match this behaviour. Also add parser-only aliases for the three-operand form, and add other shorter aliases also emitted by GNU tools. Differential Revision: https://reviews.llvm.org/D55277 Patch by James Clarke.
  301. Fix parameter name comments using clang-tidy. NFC. This patch applies clang-tidy's bugprone-argument-comment tool to LLVM, clang and lld source trees. Here is how I created this patch: $ git clone https://github.com/llvm/llvm-project.git $ cd llvm-project $ mkdir build $ cd build $ cmake -GNinja -DCMAKE_BUILD_TYPE=Debug \ -DLLVM_ENABLE_PROJECTS='clang;lld;clang-tools-extra' \ -DCMAKE_EXPORT_COMPILE_COMMANDS=On -DLLVM_ENABLE_LLD=On \ -DCMAKE_C_COMPILER=clang -DCMAKE_CXX_COMPILER=clang++ ../llvm $ ninja $ parallel clang-tidy -checks='-*,bugprone-argument-comment' \ -config='{CheckOptions: [{key: StrictMode, value: 1}]}' -fix \ ::: ../llvm/lib/**/*.{cpp,h} ../clang/lib/**/*.{cpp,h} ../lld/**/*.{cpp,h}
  302. [RISCV] Avoid overflow when determining number of nops for code align RISCVAsmBackend::shouldInsertExtraNopBytesForCodeAlign() assumed that the align specified would be greater than or equal to the minimum nop length, but that is not always the case - for example if a user specifies ".align 0" in assembly. Differential Revision: https://reviews.llvm.org/D63274 Patch by Edward Jones.
  303. [RISCV] Fix a potential issue in shouldInsertFixupForCodeAlign() The bool result of shouldInsertExtraNopBytesForCodeAlign() is not checked but the returned nop count is unconditionally read even though it could be uninitialized. Differential Revision: https://reviews.llvm.org/D63285 Patch by Edward Jones.
  304. [RISCV][NFC] Split PseudoCALL pattern out from instruction Since PseudoCALL defines AsmString, it can be generated from assembly, and so code-gen patterns should be defined separately to be consistent with the style of the RISCV backend. Other pseudo-instructions exist that have code-gen patterns defined directly, but these instructions are purely for code-gen and cannot be written in assembly. Differential Revision: https://reviews.llvm.org/D64012 Patch by James Clarke.
  305. [RISCV][NFC] Fix HasStedExtA -> HasStdExtA typo in comment Differential Revision: https://reviews.llvm.org/D64011 Patch by James Clarke.
  306. [RISCV] Make RISCVELFObjectWriter::getRelocType check IsPCRel Previously, this function didn't check the IsPCRel argument. But doing so is a useful check for errors, and also seemingly necessary for FK_Data_4 (which we produce a R_RISCV_32_PCREL relocation for if IsPCRel). Other than R_RISCV_32_PCREL, this should be NFC. Future exception handling related patches will include tests that capture this behaviour.
  307. hwasan: Pad arrays with non-1 size correctly. Spotted by eugenis. Differential Revision: https://reviews.llvm.org/D64783
  308. Add contains method to associative containers. This patch implements P0458R2, adding contains to map, multimap, unordered_map, unordered_multimap, set, multiset, unordered_set, and unordered_multiset.
  309. Revert "[OPENMP]Add support for analysis of if clauses." This reverts commit rL366068. The patch broke 86 tests under clang/test/OpenMP/ when run with address sanitizer.
  310. AMDGPU: Avoid code predicates for extload PatFrags Use the MemoryVT field. This will be necessary for tablegen to automatically handle patterns for GlobalISel. Doesn't handle the d16 lo/hi patterns. Those are a special case since it involvess the custom node type.
  311. Change a lit test to permit vendor specific clang version A test manually checks for the string `__VERSION__ "Clang`. This needs to permit vendor specific variants.
  312. reland "add -fthinlto-index= option to clang-cl" Summary: This is a reland of r366146, adding in the previously missing '--' flag that prevents filenames from being interpreted as flags. Original description: This adds a -fthinlto-index= option to clang-cl, which allows it to be used to drive ThinLTO backend passes. This allows clang-cl to be used for distributed ThinLTO. Tags: #clang
  313. Re-land "[DebugInfo] Move function from line table to the prologue (NFC)" In LLDB, when parsing type units, we don't need to parse the whole line table. Instead, we only need to parse the "support files" from the line table prologue. To make that possible, this patch moves the respective functions from the LineTable into the Prologue. Because I don't think users of the LineTable should have to know that these files come from the Prologue, I've left the original methods in place, and made them redirect to the LineTable. Differential revision: https://reviews.llvm.org/D64774
  314. [Sema] Suppress additional warnings for C's zero initializer Summary: D28148 relaxed some checks for assigning { 0 } to a structure for all C standards, but it failed to handle structures with non-integer subobjects. Relax -Wmissing-braces checks for such structures, and add some additional tests. This fixes PR39931. Patch By: al3xtjames Reviewed By: Lekensteyn Differential Revision: https://reviews.llvm.org/D61838
  315. [InstructionSimplify] Apply sext/trunc after pointer stripping Summary: - As the pointer stripping could trace through `addrspacecast` now, need to sext/trunc the offset to ensure it has the same width as the pointer after stripping. Reviewers: jdoerfert Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64768
  316. Revert "[DebugInfo] Move function from line table to the prologue (NFC)" This broke LLD, which I didn't have enabled.
  317. Allow for vendor prefixes in a list test Summary: Preprocessor/init.c contains a line that explicitly checks for the string __VERSION__ "Clang{{.*}} It's valid to have a toolchain configured to emit a vendor prefix before the word Clang. e.g. __VERSION__ "Vendor Clang{{.*}} Subscribers: fedor.sergeev, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64772
  318. [DebugInfo] Move function from line table to the prologue (NFC) In LLDB, when parsing type units, we don't need to parse the whole line table. Instead, we only need to parse the "support files" from the line table prologue. To make that possible, this patch moves the respective functions from the LineTable into the Prologue. Because I don't think users of the LineTable should have to know that these files come from the Prologue, I've left the original methods in place, and made them redirect to the LineTable. Differential revision: https://reviews.llvm.org/D64774
  319. Temporarily revert "add -fthinlto-index= option to clang-cl" This is causing testsuite failures on (at least) darwin release+asserts. This reverts commit r366146.
  320. Temporarily Revert "fix unnamed fiefield issue and add tests for __builtin_preserve_access_index intrinsic" The commit had tests that would only work with names in the IR. This reverts commit r366076.
  321. Temporarily Revert "[SLP] Recommit: Look-ahead operand reordering heuristic." As there are some reported miscompiles with AVX512 and performance regressions in Eigen. Verified with the original committer and testcases will be forthcoming. This reverts commit r364964.
  322. Revert "[NewPM] Port Sancov" This reverts commit 5652f35817f07b16f8b3856d594cc42f4d7ee29c.
  323. [DirectoryWatcher][linux] Fix for older kernels IN_EXCL_UNLINK exists since Linux 2.6.36 Differential Revision: https://reviews.llvm.org/D64764
  324. [X86] Teach convertToThreeAddress to handle SUB with immediate We mostly avoid sub with immediate but there are a couple cases that can create them. One is the add 128, %rax -> sub -128, %rax trick in isel. The other is when a SUB immediate gets created for a compare where both the flags and the subtract value is used. If we are unable to linearize the SelectionDAG to satisfy the flag user and the sub result user from the same instruction, we will clone the sub immediate for the two uses. The one that produces flags will eventually become a compare. The other will have its flag output dead, and could then be considered for LEA creation. I added additional test cases to add.ll to show the the sub -128 trick gets converted to LEA and a case where we don't need to convert it. This showed up in the current codegen for PR42571. Differential Revision: https://reviews.llvm.org/D64574
  325. [TSan] Fix asm token error (again)
  326. [WebAssembly] Add missing utility methods for exnref type Summary: This adds missing utility methods and copy instruction handling for `exnref` type and also adds tests. `tee` instruction tests are missing because `isTee` is currently only used in ExplicitLocals pass and testing that pass in mir requires serialization of stackified registers in mir files, which is a bit nontrivial because `MachineFunctionInfo` only has info of vreg numbers (which are large integers) but not the mir's register numbers. But this change is quite trivial anyway. Reviewers: tlively Subscribers: dschuff, sbc100, jgravelle-google, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64705
  327. [llvm-readelf] Print "File: lib.a(file.o)" info when dumping archive files. Match GNU readelf. https://bugs.llvm.org/show_bug.cgi?id=35351 Reviewers: jhenderson, grimar, MaskRay, rupprecht Reviewed by: jhenderson, MaskRay, grimar Differential Revision: https://reviews.llvm.org/D64361
  328. add -fthinlto-index= option to clang-cl Summary: This adds a -fthinlto-index= option to clang-cl, which allows it to be used to drive ThinLTO backend passes. This allows clang-cl to be used for distributed ThinLTO. Reviewers: tejohnson, pcc, rnk Subscribers: mehdi_amini, steven_wu, dexonsmith, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64458
  329. [WebAssembly] Rename except_ref type to exnref Summary: We agreed to rename `except_ref` to `exnref` for consistency with other reference types in https://github.com/WebAssembly/exception-handling/issues/79. This also renames WebAssemblyInstrExceptRef.td to WebAssemblyInstrRef.td in order to use the file for other reference types in future. Reviewers: dschuff Subscribers: sbc100, jgravelle-google, hiraditya, sunfish, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64703
  330. Revert [llvm-lipo] Implement -create (with hardcoded alignments) This reverts r366142 (git commit 67cee1dc7ee285b03372eb818a3894d35efa7394) The test is failing on the Windows buildbots. Reverting while I investigate.
  331. [OpenCL] Make TableGen'd builtin tables and helper functions static Reviewers: Pierre, Anastasia Reviewed By: Anastasia Subscribers: yaxunl, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64608
  332. [llvm-lipo] Implement -create (with hardcoded alignments) Creates universal binary output file from input files. Currently uses hard coded value for alignment. Want to get the create functionality approved before implementing the alignment function. Patch by Anusha Basana <anusha.basana@gmail.com> Differential Revision: https://reviews.llvm.org/D64102
  333. [clang-fuzzer] Remove 'setUseOrcMCJITReplacement(false)' call. The default value for this option (UseMCJITReplacement) is already false, and OrcMCJITReplacement is going to have deprecation warnings attached in LLVM 9.0. Removing this call removes a spurious warning.
  334. [WebAssembly] Simplify regcopy.mir Summary: This deletes the ll templates from the functions because they don't need them (mir files need ll templates only when they have function calls or BB names that are not numbers). This also renames the filename to `reg-copy.mir`, because I'm planning to add some more `reg-*.mir` soon. Reviewers: tlively Subscribers: dschuff, sbc100, jgravelle-google, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64704
  335. [WebAssembly] Assembler: support special floats: infinity / nan Summary: These are emitted as identifiers by the InstPrinter, so we should parse them as such. These could potentially clash with symbols of the same name, but that is out of our (the WebAssembly backend) control. Reviewers: dschuff Subscribers: sbc100, jgravelle-google, aheejin, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64770
  336. [DirectoryWatcher][test] Relax test assumptions Workaround for FSEvents sometimes sending notifications for events that happened before DirectoryWatcher was created. This caused tests to be flaky on green dragon.
  337. [DirectoryWatcher][NFC][test] Add typedef for enum
  338. [ASan] Fix >80 character line.
  339. [AMDGPU] Enable merging m0 initializations. Summary: Enable hoisting and merging m0 defs that are initialized with the same immediate value. Fixes bug where removed instructions are not considered to interfere with other inits, and make sure to not hoist inits before block prologues. Reviewers: rampitec, arsenm Reviewed By: rampitec Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64766
  340. [ScopInfo][NFC] Add dot at the end of comment statement.
  341. [mips] Print BEQZL and BNEZL pseudo instructions One of the reasons - to be compatible with GNU tools.
  342. AMDGPU: Use standalone MUBUF load patterns We already do this for the flat and DS instructions, although it is certainly uglier and more verbose. This will allow using separate pattern definitions for extload and zextload. Currently we get away with using a single PatFrag with custom predicate code to check if the extension type is a zextload or anyextload. The generic mechanism the global isel emitter understands treats these as mutually exclusive. I was considering making the pattern emitter accept zextload or sextload extensions for anyextload patterns, but in global isel, the different extending loads have distinct opcodes, and there is currently no mechanism for an opcode matcher to try multiple (and there probably is very little need for one beyond this case).
  343. [TSan] Fix asm token error
  344. [LoopUnroll+LoopUnswitch] do not transform loops containing callbr Summary: There is currently a correctness issue when unrolling loops containing callbr's where their indirect targets are being updated correctly to the newly created labels, but their operands are not. This manifests in unrolled loops where the second and subsequent copies of callbr instructions have blockaddresses of the label from the first instance of the unrolled loop, which would result in nonsensical runtime control flow. For now, conservatively do not unroll the loop. In the future, I think we can pursue unrolling such loops provided we transform the cloned callbr's operands correctly. Such a transform and its legalities are being discussed in: https://reviews.llvm.org/D64101 Link: https://bugs.llvm.org/show_bug.cgi?id=42489 Link: https://groups.google.com/forum/#!topic/clang-built-linux/z-hRWP9KqPI Reviewers: fhahn, hfinkel, efriedma Reviewed By: fhahn, hfinkel, efriedma Subscribers: efriedma, hiraditya, zzheng, dmgreen, llvm-commits, pirama, kees, nathanchance, E5ten, craig.topper, chandlerc, glider, void, srhines Tags: #llvm Differential Revision: https://reviews.llvm.org/D64368
  345. TableGen/GlobalISel: Fix handling of truncstore patterns This was failing to import the AMDGPU truncstore patterns. The truncating stores from 32-bit to 8/16 were then somehow being incorrectly selected to a 4-byte store. A separate check is emitted for the LLT size in comparison to the specific memory VT, which looks strange to me but makes sense based on the hierarchy of PatFrags used for the default truncstore PatFrags.
  346. TableGen: Add address space to matchers Currently AMDGPU uses a CodePatPred to check address spaces from the MachineMemOperand. Introduce a new first class property so that the existing patterns can be easily modified to uses the new generated predicate, which will also be handled for GlobalISel. I would prefer these to match against the pointer type of the instruction, but that would be difficult to get working with SelectionDAG compatbility. This is much easier for now and will avoid a painful tablegen rewrite for all the loads and stores. I'm also not sure if there's a better way to encode multiple address spaces in the table, rather than putting the number to expect.
  347. [clang] allow -fthinlto-index= without -x ir Summary: Previously, passing -fthinlto-index= to clang required that bitcode files be explicitly marked by -x ir. This change makes us detect files with object file extensions as bitcode files when -fthinlto-index= is present, so that explicitly marking them is no longer necessary. Explicitly specifying -x ir is still accepted and continues to be part of the test case to ensure we continue to support it. Reviewers: tejohnson, rnk, pcc Subscribers: mehdi_amini, steven_wu, dexonsmith, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64610
  348. [TSan] Improve handling of stack pointer mangling in {set,long}jmp, pt.9 Switch over to computing the xor key in C, instead of assembly for Linux/AArch64.
  349. AMDGPU/GlobalISel: Allow scalar s1 and/or/xor If a 1-bit value is in a 32-bit VGPR, the scalar opcodes set SCC to whether the result is 0. If the inputs are SCC, these can be copied to a 32-bit SGPR to produce an SCC result.
  350. [libc++] Implement P0433: deduction guides for <unordered_map> Thanks to Arthur O'Dwyer for the patch. Differential Revision: https://reviews.llvm.org/D58590
  351. ARM MTE stack sanitizer. Add "memtag" sanitizer that detects and mitigates stack memory issues using armv8.5 Memory Tagging Extension. It is similar in principle to HWASan, which is a software implementation of the same idea, but there are enough differencies to warrant a new sanitizer type IMHO. It is also expected to have very different performance properties. The new sanitizer does not have a runtime library (it may grow one later, along with a "debugging" mode). Similar to SafeStack and StackProtector, the instrumentation pass (in a follow up change) will be inserted in all cases, but will only affect functions marked with the new sanitize_memtag attribute. Reviewers: pcc, hctim, vitalybuka, ostannard Subscribers: srhines, mehdi_amini, javed.absar, kristof.beyls, hiraditya, cryptoad, steven_wu, dexonsmith, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D64169
  352. Constrain workaround to avoid affecting other buildbots
  353. AMDGPU/GlobalISel: Select G_AND/G_OR/G_XOR
  354. AMDGPU/GlobalISel: Don't constrain source register of VCC copies This is a hack until I come up with a better way of dealing with the pseudo-register banks used for boolean values. If the use instruction constrains the register, the selector for the def instruction won't see that the bank was VCC. A 1-bit SReg_32 is could ambiguously have been SCCRegBank or VCCRegBank in wave32. This is necessary to successfully select branches with and and/or/xor condition.
  355. AMDGPU/GlobalISel: Fix selecting vcc->vcc bank copies The extra test change is correct, although how it arrives there is a bug that needs work. With wave32, the test for isVCC ambiguously reports true for an SCC or VCC source. A new allocatable pseudo register class for SCC may be necesssary.
  356. AMDGPU/GlobalISel: Fix not constraining result reg of copies to VCC
  357. AMDGPU/GlobalISel: Fix handling of sgpr (not scc bank) s1 to VCC This was emitting a copy from a 32-bit register to a 64-bit.
  358. AMDGPU/GlobalISel: Custom legalize G_INSERT_VECTOR_ELT
  359. AMDGPU/GlobalISel: Custom legalize G_EXTRACT_VECTOR_ELT Turn the constant cases into G_EXTRACTs.
  360. AMDGPU/GlobalISel: Fix G_ICMP for wave32
  361. GlobalISel: Implement narrowScalar for vector extract/insert indexes
  362. AMDGPU: Fix missing immarg from interp intrinsics
  363. [FileCheck] Store line numbers as optional values Summary: Processing of command-line definition of variable and logic around implicit not directives both reuse parsing code that expects a line number to be defined. So far, a special line number of 0 was used for those users of the parsing code where a line number does not make sense. This commit instead represents line numbers as Optional values so that they can be None for those cases. Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk Subscribers: JonChesterfield, rogfer01, hfinkel, kristina, rnk, tra, arichardson, grimar, dblaikie, probinson, llvm-commits, hiraditya Tags: #llvm Differential Revision: https://reviews.llvm.org/D64639
  364. [cmake] Don't set install rules for tblgen if building utils is disabled Summary: This is a follow up to D64032. Afterwards if building utils is disabled and cross compilation is attempted, CMake will complain that adding `install()` directives to targets with EXCLUDE_FROM_ALL set is "undefined". Indeed, it appears depending on the CMake version and the selected Generator, the install rule will error because the underlying target isn't built. Fix that by not adding the install rule if building utils is not requested. Note that this doesn't prevent building tblgen as a dependency in not cross-build, even if building tools is disabled. Reviewed By: smeenai Differential Revision: https://reviews.llvm.org/D64225
  365. Expand comment about how StringsToBuckets was computed, and add more entries The construction was explained in https://reviews.llvm.org/D44810?id=139526#inline-391999 but reading the code shouldn't require hunting down old reviews to understand it. The precomputed list was missing an entry for the empty list case, and one entry at the very end. (The current last entry is the last one where 3 * BucketCount fits in a signed int, but the reference implementation uses unsigneds as far as I can tell, so there's room for one more entry.) No behavior change for inputs seen in practice. Differential Revision: https://reviews.llvm.org/D64738
  366. [ARM] MVE vector for 64bit types We need to make sure that we are sensibly dealing with vectors of types v2i64 and v2f64, even if most of the time we cannot generate native operations for them. This mostly adds a lot of testing, plus fixes up a couple of the issues found. And, or and xor can be legal for v2i64, and shifts combining needs a slight fixup. Differential Revision: https://reviews.llvm.org/D64316
  367. [sanitizers][windows][mingw32] Mingw32 RTL fixes RTL interception broke mingw32, this should fix those builds by removing dependency on windows.h reviewed in https://reviews.llvm.org/D64694
  368. [WebAssembly] Assembler: recognize .init_array as data section. Reviewers: sbc100 Subscribers: dschuff, jgravelle-google, aheejin, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64602
  369. AMDGPU/GlobalISel: Widen vector extracts
  370. AMDGPU/GlobalISel: Handle llvm.amdgcn.if.break
  371. AMDGPU: Remove reserved value accidentally left in for gfx908
  372. AMDGPU/GlobalISel: Select llvm.amdgcn.end.cf
  373. [x86] try to keep FP casted+truncated+extracted vector element out of GPRs inttofp (trunc (extelt X, 0)) --> inttofp (extelt (bitcast X), 0) We have pseudo-vectorization of scalar int to FP casts, so this tries to make that more likely by replacing a truncate with a bitcast. I didn't see any test diffs starting from 'uitofp', so I left that as a TODO. We can't only match the shorter trunc+extract pattern because there's an opposing transform somewhere, so we infinite loop. Waiting to try this during lowering is another possibility. A motivating case is shown in PR39975 and included in the test diffs here: https://bugs.llvm.org/show_bug.cgi?id=39975 Differential Revision: https://reviews.llvm.org/D64710
  374. [llvm-lib] Add a dependency to intrinsics_gen to the LLVMLibDriver build Summary: Occasionally the build of LLVMLibDriver will fail because Attributes.inc has not been generated yet. Add an explicit dependency, so that we can guarantee that the file has been generated before LLVMLibDriver is build. ##[error]llvm\include\llvm\IR\Attributes.h(73,0): Error C1083: Cannot open include file: 'llvm/IR/Attributes.inc': No such file or directory llvm\include\llvm/IR/Attributes.h(73): fatal error C1083: Cannot open include file: 'llvm/IR/Attributes.inc': No such file or directory [LLVMLibDriver.vcxproj] Reviewers: asmith Subscribers: mgorny, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64357
  375. [X86] Return UNDEF from LowerScalarImmediateShift when the shift amount is out of range. I think we only turn out of range shiftss to undef when all elements are out of range or the shift amount is a splat out of range. I'm not sure which, I didn't check. During lowering we can split a shift where some elements are out of range into multiple shifts. This can create a new shift with a splat shift amount that is out of range. This patch returns undef for this case. Fixes PR42615. Differential Revision: https://reviews.llvm.org/D64699
  376. Reland "[COFF] Add null check in case of symbols defined in LTO blobs" This reverts r365990 (git commit 1a6053ebc61cb0b8146f5ca27b74859a9a91e0a3) The test no longer depends on the Visual C++ libraries. I confirmed that the crash still reproduces with the new test case if I remove the null check.
  377. AMDGPU: Add 24-bit mul intrinsics Insert these during codegenprepare. This works around a DAG issue where generic combines eliminate the and asserting the high bits are zero, which then exposes an unknown read source to the mul combine. It doesn't worth the hassle of trying to insert an AssertZext or something to try to deal with it.
  378. Add some release notes for 9.0 release
  379. [AMDGPU] Copy missing predicate from pseudo to real NFC at the momemnt, needed for future commit. Differential Revision: https://reviews.llvm.org/D64761
  380. Update __VERSION__ to remove the hardcoded 4.2.1 version Summary: Just like in https://reviews.llvm.org/D56803 for -dumpversion Reviewers: rnk Reviewed By: rnk Subscribers: dexonsmith, lebedev.ri, hubert.reinterpretcast, xbolva00, fedor.sergeev, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D63048
  381. [FunctionAttrs] Remove readonly and writeonly assertion There are scenarios where mutually recursive functions may cause the SCC to contain both read only and write only functions. This removes an assertion when adding read attributes which caused a crash with a the provided test case, and instead just doesn't add the attributes. Patch by Luke Lau <luke.lau@intel.com> Differential Revision: https://reviews.llvm.org/D60761
  382. [ARM] Minor formatting in ARMInstrMVE.td. NFC
  383. Use a unique_ptr instead of manual memory management for LineTable
  384. AMDGPU/GlobalISel: Select easy cases for G_BUILD_VECTOR
  385. AMDGPU/GlobalISel: RegBankSelect for G_CONCAT_VECTORS
  386. Use a unique_ptr instead of manual memory management for CustomDiagInfo
  387. Use unique_ptr instead of manual delete in one place. No behavior change.
  388. [x86] add tests for reductions that might be better with more horizontal ops; NFC
  389. Revert "r366069: [PatternMatch] Implement matching code for LibFunc" Reason: the change introduced a layering violation by adding a dependency on IR to Analysis.
  390. [docs][llvm-nm] Fix inconsistent grammar
  391. [X86][SSE] Regenerated packss.ll test file. Not sure what went wrong in rL366077....
  392. [X86][SSE] Add PACKSS with zero shuffle masks. This is an example of expansion due to D61129 - it should combine back to a PACKSS with a zero operand.
  393. fix unnamed fiefield issue and add tests for __builtin_preserve_access_index intrinsic This is a followup patch for https://reviews.llvm.org/D61809. Handle unnamed bitfield properly and add more test cases. Fixed the unnamed bitfield issue. The unnamed bitfield is ignored by debug info, so we need to ignore such a struct/union member when we try to get the member index in the debug info. D61809 contains two test cases but not enough as it does not checking generated IRs in the fine grain level, and also it does not have semantics checking tests. This patch added unit tests for both code gen and semantics checking for the new intrinsic. Signed-off-by: Yonghong Song <yhs@fb.com>
  394. [ORC] Start adding ORCv1 to ORCv2 transition tips to the ORCv2 doc.
  395. [AMDGPU] fixed scheduler crash in gfx908 For some reason scheduler can send down an SUnit without an instruction. Differential Revision: https://reviews.llvm.org/D64709
  396. [clangd] Fix doc
  397. gn build: Add a note on how to locally tell git to ignore build dir
  398. [AMDGPU][MC][GFX9][GFX10] Added support of GET_DOORBELL message Reviewers: artem.tamazov, arsenm Differential Revision: https://reviews.llvm.org/D64729
  399. [clangd] Fix duplicate highlighting tokens appearing in initializer lists. Summary: The RecursiveASTVisitor sometimes visits exprs in initializer lists twice. Added deduplication to prevent duplicate highlighting tokens from appearing. Done by sorting and a linear search. Reviewers: hokein, sammccall, ilya-biryukov Subscribers: MaskRay, jkorous, mgrang, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64634
  400. [PatternMatch] Implement matching code for LibFunc Summary: Provides m_LibFunc pattern that can be used to match LibFuncs. Reviewers: spatel, hfinkel, efriedma, lebedev.ri Reviewed By: lebedev.ri Subscribers: lebedev.ri, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D42047
  401. [OPENMP]Add support for analysis of if clauses. Summary: Added support for analysis of if clauses in the OpenMP directives to be able to check for the use of uninitialized variables. Reviewers: NoQ Subscribers: guansong, jfb, jdoerfert, caomhin, kkwli0, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64646
  402. [AMDGPU][MC] Corrected encoding of src0 for DS_GWS_* instructions See bug 42599: https://bugs.llvm.org/show_bug.cgi?id=42599 Reviewers: artem.tamazov, arsenm Differential Revision: https://reviews.llvm.org/D64716
  403. [X86] isTargetShuffleEquivalent - assert the expected mask is correctly formed. NFCI. While we don't make any assumptions about the actual mask, assert that the expected mask only contains valid mask element values.
  404. [Testing] Add missing "REQUIRES: asserts" This broke after r366048 / https://reviews.llvm.org/D63923
  405. [mips] Remove "else-after-return". NFC
  406. [OpenCL] Deduce addr space for pointee of dependent types in instantiation. Since pointee doesn't require context sensitive addr space deduction it's easier to handle pointee of dependent types during templ instantiation. Differential Revision: https://reviews.llvm.org/D64400
  407. Fix uninitialized variable analyzer warning. NFCI.
  408. [ASTImporter] Using Lang_CXX14 in ASTImporterVisibilityTest. Summary: These tests may work with C++14 language constructs in the future (variable templates and others). To avoid warnings about language version C++ version constants in the tests are updated. Reviewers: martong, a.sidorin Reviewed By: martong Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64477
  409. PDB HashTable: Make iterator key type const Having the hash table key change during iteration is bad, so make it impossible. Nothing relied on the key type not being const. (This is also necessary to be able to call the const version of iterator_facade_base::operator->(). Nothing calls this, and nothing will, but I tried using it locally during development and it took me a while to understand what was going wrong.) Also rename the iterator typedef to const_iterator. No behavior change. Differential Revision: https://reviews.llvm.org/D64641
  410. [OpenCL][PR41727] Prevent ICE on global dtors Pass NULL to pointer arg of __cxa_atexit if addr space is not matching with its param. This doesn't align yet with how dtors are generated that should be changed too. Differential Revision: https://reviews.llvm.org/D62413
  411. Recommit r366052 "[obj2yaml] - Rework tool's error reporting logic for ELF target." No changes, LLD code was updated in r366057. Original commit message: ELF.h contains two getSymbol methods which seems to be used only from obj2yaml. One of these methods calls another, which in turn contains untested error message which doesn't provide enough information. Problem is that after improving only just that message, obj2yaml will not show it, ("Error reading file: yaml: Invalid data was encountered while parsing the file" message will be shown instead), because internal errors handling of tool is based on ErrorOr<> class which stores a error code and as a result can only show a predefined error string, what actually isn't very useful. In this patch, I rework obj2yaml's error reporting system for ELF targets to use Error Expected<> classes. Also, I improve the error message produced by getSymbol for demonstration of the new functionality. Differential revision: https://reviews.llvm.org/D64631
  412. [LLD][ELF] - Minor simplification. NFC. This removes a call to `object::getSymbol<ELFT>`. We used this function in a next way: it was given an array of symbols and index and returned either a symbol at the index given or a error. This function was removed in D64631. (rL366052, but was reverted because of LLD compilation error that I didn't know about). It does not make much sense to keep this function on LLVM side only for LLD, because having only a list of symbols and the index it is not able to produce a valueable error message about context anyways.
  413. [ARM] MVE Vector Shifts This adds basic lowering for MVE shifts. There are many shifts in MVE, but the instructions handled here are: VSHL (imm) VSHRu (imm) VSHRs (imm) VSHL (vector) VSHL (register) MVE, like NEON before it, doesn't have shift right by a vector (or register). We instead have to negate the amount and shift in the opposite direction. This means we have to convert any SHR's into a form of SHL (that is still signed or unsigned) with a negated condition and selecting from there. MVE still does have shifting by an immediate for SHL, ASR and LSR. This adds lowering for these and for register forms, which work well for shift lefts but may require an extra fold of neg(vdup(x)) -> vdup(neg(x)) to potentially work optimally for right shifts. Differential Revision: https://reviews.llvm.org/D64212
  414. [libFuzzer] Disable fork.test on AArch64 This crashes sporadically on our AArch64 buildbots. Disable for now.
  415. [ARM] Move Shifts after Bits. NFC This just moves the shift instruction definitions further down the ARMInstrMVE.td file, to make positioning patterns slightly more natural.
  416. Revert r366052 "[obj2yaml] - Rework tool's error reporting logic for ELF target." Seems it broke LLD: http://lab.llvm.org:8011/builders/sanitizer-windows/builds/48434
  417. [obj2yaml] - Rework tool's error reporting logic for ELF target. ELF.h contains two getSymbol methods which seems to be used only from obj2yaml. One of these methods calls another, which in turn contains untested error message which doesn't provide enough information. Problem is that after improving only just that message, obj2yaml will not show it, ("Error reading file: yaml: Invalid data was encountered while parsing the file" message will be shown instead), because internal errors handling of tool is based on ErrorOr<> class which stores a error code and as a result can only show a predefined error string, what actually isn't very useful. In this patch, I rework obj2yaml's error reporting system for ELF targets to use Error Expected<> classes. Also, I improve the error message produced by getSymbol for demonstration of the new functionality. Differential revision: https://reviews.llvm.org/D64631
  418. [ARM] Adjust how NEON shifts are lowered This adjusts the way that we lower NEON shifts to use a DAG target node, not via a neon intrinsic. This is useful for handling MVE shifts operations in the same the way. It also renames some of the immediate shift nodes for consistency, and moves some of the processing of immediate shifts into LowerShift allowing it to capture more cases. Differential Revision: https://reviews.llvm.org/D64426
  419. [Loop Peeling] Fix the bug with IDom setting for exit loops It is possible that loop exit has two predecessors in a loop body. In this case after the peeling the iDom of the exit should be a clone of iDom of original exit but no a clone of a block coming to this exit. Reviewers: reames, fhahn Reviewed By: reames Subscribers: hiraditya, zzheng, llvm-commits Differential Revision: https://reviews.llvm.org/D64618
  420. [LoopVectorize] Pass unfiltered list of arguments to getIntrinsicInstCost. We do not compute the scalarization overhead in getVectorIntrinsicCost and TTI::getIntrinsicInstrCost requires the full arguments list.
  421. [Loop Peeling] Enable peeling for loops with multiple exits This CL enables peeling of the loop with multiple exits where one exit should be from latch and others are basic blocks with call to deopt. The peeling is enabled under the flag which is false by default. Reviewers: reames, mkuper, iajbar, fhahn Reviewed By: reames Subscribers: xbolva00, hiraditya, zzheng, llvm-commits Differential Revision: https://reviews.llvm.org/D63923
  422. [clangd] Added highlighting for members and methods. Summary: Added highlighting for members and methods. Reviewers: hokein, sammccall, ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64617
  423. DeveloperPolicy: fix a typo
  424. [clangd] Added highlighting to enum constants. Summary: VSCode does not have a scope for enum constants. So they were placed under "constant.other.enum" as that seems to be the most correct scope for enum constants. However, this makes theia color them blue (the same color it uses for keywords). Reviewers: hokein, sammccall, ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64624
  425. [PowerPC] Support -mabi=ieeelongdouble and -mabi=ibmlongdouble gcc PowerPC supports 3 representations of long double: * -mlong-double-64 long double has the same representation of double but is mangled as `e`. In clang, this is the default on AIX, FreeBSD and Linux musl. * -mlong-double-128 2 possible 128-bit floating point representations: + -mabi=ibmlongdouble IBM extended double format. Mangled as `g` In clang, this is the default on Linux glibc. + -mabi=ieeelongdouble IEEE 754 quadruple-precision format. Mangled as `u9__ieee128` (`U10__float128` before gcc 8.2) This is currently unavailable. This patch adds -mabi=ibmlongdouble and -mabi=ieeelongdouble, and thus makes the IEEE 754 quadruple-precision long double available for languages supported by clang. Reviewed By: hfinkel Differential Revision: https://reviews.llvm.org/D64283
  426. [Attributor] Deduce "nonnull" attribute Summary: Porting nonnull attribute to attributor. Reviewers: jdoerfert, sstefan1 Reviewed By: jdoerfert Subscribers: xbolva00, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D63604
  427. [LoopUtils] Extend the scope of getLoopEstimatedTripCount With this patch the getLoopEstimatedTripCount function will accept also the loops where there are more than one exit but all exits except latch block should ends up with a call to deopt. This side exits should not impact the estimated trip count. Reviewers: reames, mkuper, danielcdh Reviewed By: reames Subscribers: fhahn, lebedev.ri, hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D64553
  428. Remove set but unused variable.
  429. [LoopInfo] Introduce getUniqueNonLatchExitBlocks utility function Extract the code from LoopUnrollRuntime into utility function to re-use it in D63923. Reviewers: reames, mkuper Reviewed By: reames Subscribers: fhahn, hiraditya, zzheng, dmgreen, llvm-commits Differential Revision: https://reviews.llvm.org/D64548
  430. [PowerPC] Support fp128 libcalls On PowerPC, IEEE 754 quadruple-precision libcall names use "kf" instead of "tf". In libgcc, libgcc/config/rs6000/float128-sed converts TF names to KF names. This patch implements its 24 substitution rules. Reviewed By: hfinkel Differential Revision: https://reviews.llvm.org/D64282
  431. [BPF] add unit tests for preserve_{array,union,struct}_access_index intrinsics This is a followup patch for https://reviews.llvm.org/D61810/new/, which adds new intrinsics preserve_{array,union,struct}_access_index. Currently, only BPF backend utilizes preserve_{array,union,struct}_access_index intrinsics, so all tests are compiled with BPF target. https://reviews.llvm.org/D61524 already added some tests for these intrinsics, but some of them pretty complex. This patch added a few unit test cases focusing on individual intrinsic functions. Also made a few clarification on language reference for these intrinsics. Differential Revision: https://reviews.llvm.org/D64606
  432. [NFC][PowerPC] Add the test block-placement.mir
  433. [ValueTracking] Look through constant Int2Ptr/Ptr2Int expressions Summary: This is analogous to the int2ptr/ptr2int instruction handling introduced in D54956. Reviewers: fhahn, efriedma, spatel, nlopes, sanjoy, lebedev.ri Subscribers: hiraditya, bollu, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64708
  434. [X86] Separate the memory size of vzext_load/vextract_store from the element size of the result type. Use them improve the codegen of v2f32 loads/stores with sse1 only. Summary: SSE1 only supports v4f32. But does have instructions like movlps/movhps that load/store 64-bits of memory. This patch breaks the connection between the node VT of the vzext_load/vextract_store patterns and the memory VT. Enabling a v4f32 node with a 64-bit memory VT. I've used i64 as the memory VT here. I've written the PatFrag predicate to just check the store size not the specific VT. I think the VT will only matter for CSE purposes. We could use v2f32, but if we want to start using these operations in more places a simple integer type might make the most sense. I'd like to maybe use this same thing for SSE2 and later as well, but that will need more work to be supported by EltsFromConsecutiveLoads to avoid regressing lit tests. I'd maybe also like to combine bitcasts with these load/stores nodes now that the types are disconnected. And I'd also like to consider canonicalizing (scalar_to_vector + load) to vzext_load. If you want I can split the mechanical tablegen stuff where I added the 32/64 off from the sse1 change. Reviewers: spatel, RKSimon Reviewed By: RKSimon Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64528
  435. Improve compile time of variant. In particular, improve the compile time of the overload set builder that variant uses to determine which alternative to construct. Instead of having the __overload type construct itself recursively, this patch uses a flat construction for the overload set.
  436. Add test for variant construction with duplicate types.
  437. [TargetParser][ARM] Account dependencies when processing target features Teaches ARM::appendArchExtFeatures to account dependencies when processing target features: i.e. when you say -march=armv8.1-m.main+mve.fp+nofp it means mve.fp should get discarded too. (Split from D63936) Differential Revision: https://reviews.llvm.org/D64048
  438. [LV] Exclude loop-invariant inputs from scalar cost computation. Loop invariant operands do not need to be scalarized, as we are using the values outside the loop. We should ignore them when computing the scalarization overhead. Fixes PR41294 Reviewers: hsaito, rengolin, dcaballe, Ayal Reviewed By: Ayal Differential Revision: https://reviews.llvm.org/D59995
  439. Fix uninitialized variable analyzer warning. NFCI.
  440. Support __seg_fs and __seg_gs on x86 Summary: GCC supports named address spaces macros: https://gcc.gnu.org/onlinedocs/gcc/Named-Address-Spaces.html clang does as well with address spaces: https://clang.llvm.org/docs/LanguageExtensions.html#memory-references-to-specified-segments Add the __seg_fs and __seg_gs macros for compatibility with GCC. <rdar://problem/52944935> Subscribers: jkorous, dexonsmith, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64676
  441. [clang][Driver][ARM] Favor -mfpu over default CPU features When processing the command line options march, mcpu and mfpu, we store the implied target features on a vector. The change D62998 introduced a temporary vector, where the processed features get accumulated. When calling DecodeARMFeaturesFromCPU, which sets the default features for the specified CPU, we certainly don't want to override the features that have been explicitly specified on the command line. Therefore, the default features should appear first in the final vector. This problem became evident once I added the missing (unhandled) target features in ARM::getExtensionFeatures. Differential Revision: https://reviews.llvm.org/D63936
  442. Cleanup whitespace in <variant>. NFC.
  443. Harden variant test added in r366022 The test was brittle since it only went boom for one specific type, when really it should go boom for all of them.
  444. consistency in the release notes
  445. [GitSVN][NFC] Mark dry-run commits as such in the log output Summary: This helps to avoid worries about the "dry run flag" while testing. Reviewers: jyknight, rnk, mehdi_amini Subscribers: bollu, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64697
  446. Avoid eager template instantiation caused by the variant narrowing checks. The standard disallows narrowing conversions when constructing a variant. This is checked by attempting to perform braced initialization of the destination type from the argument type. However, braced initialization can force the compiler (mostly clang) to eagerly instantiate the constructors of the destintation type -- which can lead to errors in a non-immediate context. However, as variant is currently specified, the narrowing checks only observably apply when the destination type is arithmetic. Meaning we can skip the check for class types. Hense avoiding the hard errors. In order to cause fewer build breakages, this patch avoids the narrowing check except when the destination type is arithmetic.
  447. [InstCombine] Add assume context test; NFC Baseline test for D37215.
  448. [Hashing] hash_1to3_bytes - avoid trunc(v + zext(x)) NFCI. MSVC complains about the extension to uint64_t for an addition followed by truncation back to uint32_t - add an explicit uint32_t cast to avoid this.
  449. [x86] add test for sub-with-flags opportunity (PR40483); NFC
  450. Recommit "[BitcodeReader] Validate OpNum, before accessing Record array." This recommits r365750 (git commit 8b222ecf2769ee133691f208f6166ce118c4a164) Original message: Currently invalid bitcode files can cause a crash, when OpNum exceeds the number of elements in Record, like in the attached bitcode file. The test case was generated by clusterfuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=15698 Reviewers: t.p.northover, thegameg, jfb Reviewed By: jfb Differential Revision: https://reviews.llvm.org/D64507 llvm-svn: 365750jkkkk
  451. [BitcodeReader] Use tighter upper bound to validate forward references. At the moment, bitcode files with invalid forward reference can easily cause the bitcode reader to run out of memory, by creating a forward reference with a very high index. We can use the size of the bitcode file as an upper bound, because a valid bitcode file can never contain more records. This should be sufficient to fail early in most cases. The only exception is large files with invalid forward references close to the file size. There are a couple of clusterfuzz runs that fail with out-of-memory because of very high forward references and they should be fixed by this patch. A concrete example for this is D64507, which causes out-of-memory on systems with low memory, like the hexagon upstream bots. Reviewers: t.p.northover, thegameg, jfb, efriedma, hfinkel Reviewed By: jfb Differential Revision: https://reviews.llvm.org/D64577
  452. VirtRegMap - add missing initializers. NFCI.
  453. SlotIndexes - add missing initializer. NFCI.
  454. [MachineOutliner] Add missing initializers for OutlinedFunction. NFCI. Appeases MSVC/cppcheck.
  455. [Driver] Simplify AddLibgcc
  456. [Driver] Simplify -lgcc & -lgcc_s gcc defaults to -shared-libgcc in C++ mode. Letting getLibGccType() return SharedLibGcc simplifies the logic.
  457. [X86] Remove offset of 8 from the call to FuseInst for UNPCKLPDrr folding added in r365287. This was copy/pasted from above and I forgot to change it. We just need the default offset of 0 here. Fixes PR42616.
  458. Remove extra ';' to silent compiler warning. - Plus extra style formatting.
  459. [Attributor][Fix] Never override given argument numbers
  460. [ARM] Add sign and zero extend patterns for MVE The vmovlb instructions can be uses to sign or zero extend vector registers between types. This adds some patterns for them and relevant testing. The VBICIMM generation is also put behind a hasNEON check (as is already done for VORRIMM). Code originally by David Sherwood. Differential Revision: https://reviews.llvm.org/D64069
  461. Template-related improvements to Visual Studio visualizers
  462. [ARM] MVE VNEG instruction patterns This selects integer VNEG instructions, which can be especially useful with shifts. Differential Revision: https://reviews.llvm.org/D64204
  463. [ARM] MVE integer abs Similar to floating point abs, we also have instructions for integers. Differential Revision: https://reviews.llvm.org/D64027
  464. [ARM] MVE integer min and max This simply makes the MVE integer min and max instructions legal and adds the relevant patterns for them. Differential Revision: https://reviews.llvm.org/D64026
  465. [ARM] MVE VRINT support This adds support for the floor/ceil/trunc/... series of instructions, converting to various forms of VRINT. They use the same suffixes as their floating point counterparts. There is not VTINTR, so nearbyint is expanded. Also added a copysign test, to show it is expanded. Differential Revision: https://reviews.llvm.org/D63985
  466. [ARM] MVE minnm and maxnm instructions This adds the patterns for minnm and maxnm from the fminnum and fmaxnum nodes, similar to scalar types. Original patch by Simon Tatham Differential Revision: https://reviews.llvm.org/D63870
  467. FileCheck [7/12]: Arbitrary long numeric expressions Summary: This patch is part of a patch series to add support for FileCheck numeric expressions. This specific patch extend numeric expression to support an arbitrary number of operands, either variable or literals. Copyright: - Linaro (changes up to diff 183612 of revision D55940) - GraphCore (changes in later versions of revision D55940 and in new revision created off D55940) Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk Subscribers: hiraditya, llvm-commits, probinson, dblaikie, grimar, arichardson, tra, rnk, kristina, hfinkel, rogfer01, JonChesterfield Tags: #llvm Differential Revision: https://reviews.llvm.org/D60387
  468. Revert "[InstCombine] add tests for umin/umax via usub.sat; NFC" This reverts commit rL365999 / 0f6148df23edcd3081f5e761de19edd4f823f16d. The tests already exist in this file, and the hoped-for transform (mentioned in D62871) is invalid because of undef as discussed in D63060.
  469. [InstCombine] add tests for umin/umax via usub.sat; NFC
  470. [x86] simplify cmov with same true/false operands
  471. [Object] isNotObjectErrorInvalidFileType: simplify
  472. [Object] isNotObjectErrorInvalidFileType: fix use-after-move
  473. Fix -Wdocumentation warning. NFCI.
  474. [CMake][Fuchsia] Define asan+noexcept multilib Using noexcept multilib with -fno-exceptions can lead to significant space savings when statically linking libc++abi because we don't need all the unwinding and demangling code. When compiling with ASan, we already get a lot of overhead from the instrumentation itself, when statically linking libc++abi, that overhead is even larger. Having the noexcept variant for ASan can help significantly, we've seen more than 50% size reduction in our system image, which offsets the cost of having to build another multilib. Differential Revision: https://reviews.llvm.org/D64140
  475. Simplify with llvm::is_contained. NFC
  476. This reverts commit 632a36bfcfc8273c1861f04ff6758d863c47c784. Some targets such as Python 2.7.16 still use VERSION in their builds. Without VERSION defined, the source code has syntax errors. Reverting as it will probably break many other things. Noticed by Sterling Augustine
  477. Revert "[COFF] Add null check in case of symbols defined in LTO blobs" This reverts commit r365979: COFF/undefined-symbol-lto.test is failing.
  478. Initialize the non-trivial C union bits I added to RecordDeclBitfields in r365985 These bits weren't being initialized in the RecordDecl's constructor, which probably caused test/Modules/stress1.cpp to fail on a couple of bots.
  479. [clangd] Mark type hierarchy as a supported feature in the docs Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64614
  480. [clangd] Implement typeHierarchy/resolve for subtypes Summary: This allows the client to resolve subtypes one level at a time. For supertypes, this is not necessary, because we eagerly compute supertypes and return all levels. Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64308
  481. [Sema] Diagnose default-initialization, destruction, and copying of non-trivial C union types This patch diagnoses uses of non-trivial C unions and structs/unions containing non-trivial C unions in the following contexts, which require default-initialization, destruction, or copying of the union objects, instead of disallowing fields of non-trivial types in C unions, which is what we currently do: - function parameters. - function returns. - assignments. - compound literals. - block captures except capturing of `__block` variables by non-escaping blocks. - local and global variable definitions. - lvalue-to-rvalue conversions of volatile types. See the discussion in https://reviews.llvm.org/D62988 for more background. rdar://problem/50679094 Differential Revision: https://reviews.llvm.org/D63753
  482. [Attributor][NFC] Run clang-format on the attributor files (.h/.cpp) The Attributor files are kept formatted with clang-format, we should try to keep this state.
  483. [Attributor] Only return attributes with a valid state Attributor::getAAFor will now only return AbstractAttributes with a valid AbstractState. This simplifies call sites as they only need to check if the returned pointer is non-null. It also reduces the potential for accidental misuse.
  484. [TSan] Tiny cleanup of UnmangleLongJmpSp for Linux/x86_64 NFC.
  485. clang/test/Driver/fsanitize.c: Fix -fsanitize=vptr using default target The default implementation of getSupportedSanitizers isn't able to turn on the vptr sanitizer, and thus, any platform that runs this test will fail with the error: clang: error: unsupported option '-fsanitize=vptr' for target '<target>' Patch by James Nagurne!
  486. Extend function attributes bitset size from 64 to 96. Summary: We are going to add a function attribute number 64. Reviewers: pcc, jdoerfert, lebedev.ri Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64663
  487. [COFF] Add null check in case of symbols defined in LTO blobs The test case could probably be improved further if the failure path was better understood. Fixes PR42536
  488. [Attributor][FIX] Lookup of (call site) argument attributes
  489. [DirectoryWatcher][test][NFC] Add information to test failure reports
  490. Re-land [JSONCompilationDatabase] Strip distcc/ccache/gomacc wrappers from parsed commands. Use //net/dir like other test cases for windows compatibility
  491. PDB HashTable: Move TraitsT from class parameter to the methods that need it The traits object is only used by a few methods. Deserializing a hash table and walking it is possible without the traits object, so it shouldn't be required to build a dummy object for that use case. The TraitsT object used to be a function template parameter before r327647, this restores it to that state. This makes it clear that the traits object isn't needed at all in 1 of the current 3 uses of HashTable (and I am going to add another use that doesn't need it), and that the default PdbHashTraits isn't used outside of tests. While here, also re-enable 3 checks in the test that were commented out (which requires making HashTableInternals templated and giving FooBar an operator==). No intended behavior change. Differential Revision: https://reviews.llvm.org/D64640
  492. Fix non-conformance it `std::tuple`. Previously we implemented all one trillion tuple-like constructors using a single generic overload. This worked fairly well, except that it differed in behavior from the standard version because it didn't consider both T&& and T const&. This was observable for certain types. This patch addresses that issue by splitting the generic constructor in two. We now provide both T&& and T const& versions of the tuple-like constructors (sort of).
  493. [AMDGPU] use v32f32 for 3 mfma intrinsics These should really use v32f32, but were defined as v32i32 due to the lack of the v32f32 type. Differential Revision: https://reviews.llvm.org/D64667
  494. isBytewiseValue checks ConstantVector element by element Summary: Vector of the same value with few undefs will sill be considered "Bytewise" Reviewers: eugenis, pcc, jfb Reviewed By: jfb Subscribers: dexonsmith, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64031
  495. [MemorySSA] Use SetVector to avoid nondeterminism. Summary: Use a SetVector for DeadBlockSet. Resolves PR42574. Reviewers: george.burgess.iv, uabelho, dblaikie Subscribers: jlebar, Prazek, mgrang, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64601
  496. NFC: utils/perf-training: Python 3 compatibility for lit.cfg The output of subprocess.check_output is now bytes. We need to decode it.
  497. [DirectoryWatcher][NFC] Silence warnings in release build
  498. [clang-doc] Fix failing tests on Windows Tests on Windows were failing due to path separator differences. '/' was being used as separator in the expected output, paths in expected output are now changed to their native form before comparing them to the actual output. Committed on behalf of Diego Astiazarán (diegoaat97@gmail.com). Differential Revision: https://reviews.llvm.org/D64669
  499. [DirectoryWatcher][linux] Fix use of uninitialized value
  500. [WebAssembly] refactored utilities to not depend on MachineInstr Summary: Most of these functions can work for MachineInstr and MCInst equally now. Reviewers: dschuff Subscribers: MatzeB, sbc100, jgravelle-google, aheejin, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64643
  501. [macCatalyst] Use macCatalyst pretty name in .build_version darwin assembly command 'macCatalyst' is more readable than 'maccatalyst'. I renamed the objdump output, but the assembly should match it as well.
  502. Remove __VERSION__ Summary: It has been introduced in 2011 for gcc compat: https://github.com/llvm-mirror/clang/commit/ad1a4c6e89594e704775ddb6b036ac982fd68cad it is probably time to remove it Reviewers: rnk, dexonsmith Reviewed By: rnk Subscribers: dschuff, aheejin, fedor.sergeev, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64062
  503. [test][AArch64] Relax the opcode tests for FP min/max instructions.
  504. Add option to disable variant narrowing conversion changes. The paper P0608R3 - "A sane variant converting constructor" disallows narrowing conversions in variant. It was meant to address this surprising problem: std::variant<std::string, bool> v = "abc"; assert(v.index() == 1); // constructs a bool. However, it also disables every potentially narrowing conversion. For example: variant<unsigned> v = 0; // ill-formed variant<string, double> v2 = 42; // ill-formed (int -> double narrows) These latter changes break code. A lot of code. Within Google it broke on the order of a hundred thousand target with thousands of root causes responsible for the breakages. Of the breakages related to the narrowing restrictions, none of them exposed outstanding bugs. However, the breakages caused by boolean conversions (~13 root causes), all but one of them were bugs. For this reasons, I am adding a flag to disable the narrowing conversion changes but not the boolean conversions one. One purpose of this flag is to allow users to opt-out of breaking changes in variant until the offending code can be cleaned up. For non-trivial variant usages the amount of cleanup may be significant. This flag is also required to support automated tooling, such as clang-tidy, that can automatically fix code broken by this change. In order for clang-tidy to know the correct alternative to construct, it must know what alternative was being constructed previously, which means running it over the old version of std::variant. Because this change breaks so much code, I will be implementing the aforementioned clang-tidy check in the very near future. Additionally I'm plan present this new information to the committee so they can re-consider if this is a breaking change we want to make. I think libc++ should very seriously consider pulling this change before the 9.0 release branch is cut. But that's a separate discussion that I will start on the lists. For now this is the minimal first step.
  505. [InstCombine] Disable fold from D64285 for non-integer types
  506. Factor out resolveFrameOffsetReference (NFC). Split AArch64FrameLowering::resolveFrameIndexReference in two parts * Finding frame offset for the index. * Finding base register and offset to that register. The second part will be used to implement a virtual frame pointer in armv8.5 MTE stack instrumentation lowering. Reviewers: pcc, vitalybuka, hctim, ostannard Subscribers: javed.absar, kristof.beyls, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64171
  507. [builtins] Fix assembly in arm sync-ops.h This assembly is part of a macro that was reformatted in D60351. The missing space between push and { results in: Error: bad instruction `push{r4, r5,r6,lr}'
  508. Revert driver: Don't warn about assembler flags being unused when not assembling This reverts r365703 (git commit 101c1afdfd1c88f05da94c6fd317b489bb704f40) and r365714. This broke some autoconf-style assembler flags checks in the Linux build: https://github.com/ClangBuiltLinux/linux/issues/598
  509. [clangd] Fix off-by-one in CodeComplete and assertion in Dex
  510. Reland [clang] DirectoryWatcher This reverts commit f561227d133224d2d6a5a016abe4be051fa75501. - DirectoryWatcher - Fix the build for platforms that don't have DW implementated. - Fix the threading dependencies (thanks to compnerd).
  511. AMDGPU: Drop remnants of byval support for shaders Before 2018, mesa used to use byval interchangably with inreg, which didn't really make sense. Fix tests still using it to avoid breaking in a future commit.
  512. Fix missing use of defined() in include guard Subscribers: arsenm, jvesely, nhaehnle, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64657
  513. [SystemZ] Fix addcarry of addcarry of const carry (PR42606) This fixes https://bugs.llvm.org/show_bug.cgi?id=42606 by extending D64213. Instead of only checking if the carry comes from a matching operation, we now check the full chain of carries. Otherwise we might custom lower the outermost addcarry, but then generically legalize an inner addcarry. Differential Revision: https://reviews.llvm.org/D64658
  514. Revert "Reland [clang] DirectoryWatcher" This reverts commit fdcb7f47e783933e0af8a5fae91132269a208268.
  515. Reland [clang] DirectoryWatcher This reverts commit abce8c457dd3de6b156756e547cc0eefb7653c79. + Fix the build for platforms that don't have DW implementated.
  516. [X86] Use MachineInstr::findRegisterDefOperand to simplify some code in optimizeCompareInstr. NFCI
  517. [DebugInfo] Add column info for inline sites The column field is missing for all inline sites, currently it's always zero. This changes populates DW_AT_call_column field for inline sites. Test case modified to cover this change. Patch by: Wenlei He Differential revision: https://reviews.llvm.org/D64033
  518. The variable "Latch" is only used in an assert, which makes builds that use "-DNDEBUG" fail with unused variable messages. Summary: Move the logic into the assert itself. Subscribers: hiraditya, sanjoy, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64654
  519. [SystemZ] Fix build bot failure after r365932 Insert LLVM_FALLTHROUGH to avoid compiler warning.
  520. [x86] add test for bogus cmov (PR40483); NFC
  521. [AMDGPU] Extend MIMG opcode to 8 bits This is NFC, but required for future commit. Differential Revision: https://reviews.llvm.org/D64649
  522. Addition to rL365925, removing remaining virtuals
  523. [clang-doc] Add html links to references <a> tags are added for the parents and members of records and return type and params of functions. The link redirects to the reference's info file. The directory path where each info file will be saved is now generated in the serialization phase and stored as an attribute in each Info. Bitcode writer and reader were modified to handle the new attributes. Committed on behalf of Diego Astiazarán (diegoaat97@gmail.com). Differential Revision: https://reviews.llvm.org/D63663
  524. Slightly simplify MappedBlockStream::createIndexedStream() calls All callers had a PDBFile object at hand, so call Pdb.createIndexedStream() instead, which pre-populates all the arguments (and returns nullptr for kInvalidStreamIndex). Also change safelyCreateIndexedStream() to only take the string index, and update callers. Make the method public and call it in two places that manually did the bounds checking before. No intended behavior change. Differential Revision: https://reviews.llvm.org/D64633
  525. [WebAssembly] Make pthread imply bulk-memory, mutable-globals Summary: This paves the way for using passive segments in pthread builds, which will make separate memory files unnecessary. Mutable globals are also necessary for the upcoming implementation of TLS. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, jfb, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64586
  526. Add explicit newline at end of `llvm-pdbutil dump` All dump modes I checked didn't print a trailing newline, so add one.
  527. [SystemZ] Add support for new cpu architecture - arch13 This patch series adds support for the next-generation arch13 CPU architecture to the SystemZ backend. This includes: - Basic support for the new processor and its features. - Support for low-level builtins mapped to new LLVM intrinsics. - New high-level intrinsics in vecintrin.h. - Indicate support by defining __VEC__ == 10303. Note: No currently available Z system supports the arch13 architecture. Once new systems become available, the official system name will be added as supported -march name.
  528. [SystemZ] Add support for new cpu architecture - arch13 This patch series adds support for the next-generation arch13 CPU architecture to the SystemZ backend. This includes: - Basic support for the new processor and its features. - Assembler/disassembler support for new instructions. - CodeGen for new instructions, including new LLVM intrinsics. - Scheduler description for the new processor. - Detection of arch13 as host processor. Note: No currently available Z system supports the arch13 architecture. Once new systems become available, the official system name will be added as supported -march name.
  529. Remove unused methods in Sancov.
  530. [WebAssembly] i32.const operands should be signed Summary: This was causing large addresses to be emitted as negative numbers, which rightfully caused crashes in binaryen. Reviewers: aheejin, dschuff Subscribers: sbc100, jgravelle-google, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64612
  531. [X86] Add NEG to isUseDefConvertible. We can use the C flag from NEG to detect that the input was zero. Really we could probably use the Z flag too. But C matches what we'd do for usubo 0, X. Haven't found a test case for this due to the usubo formation in CGP. But I verified if I comment out the CGP code this transformation catches some of the same cases.
  532. [X86][AVX] Add PR34359 shuffle test case.
  533. [Attributor] Removing unnecessary `virtual` keywords. Some function in the Attributor framework are unnecessarily marked virtual. This patch removes virtual keyword Reviewers: jdoerfert Subscribers: hiraditya, llvm-commits Differential Revision: https://reviews.llvm.org/D64637
  534. [Attributor] Deduce "nofree" function attribute Summary: Deduce "nofree" function attribute. A more concise description of "nofree" is on D49165. Reviewers: jdoerfert Reviewed By: jdoerfert Subscribers: homerdin, hfinkel, lebedev.ri, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D62687
  535. [libc++] Add XFAILs for CTAD tests on older compilers
  536. Revert [clang-shlib] Fix clang-shlib for PRIVATE dependencies This reverts r365825 (git commit 3173c60f96c3ccfc17d403a192ae58e720153c23) This is breaking BUILD_SHARED_LIBS=ON builds. Reverting while I rethink it.
  537. CodeGet: Init 32bit pointers with 0xFFFFFFFF Summary: Patch makes D63967 effective for 32bit platforms and improves pattern initialization there. It cuts size of 32bit binary compiled with -ftrivial-auto-var-init=pattern by 2% (3% with -Os). Binary size change on CTMark, (with -fuse-ld=lld -Wl,--icf=all, similar results with default linker options) ``` master patch diff Os pattern 7.915580e+05 7.698424e+05 -0.028387 O3 pattern 9.953688e+05 9.752952e+05 -0.019325 ``` Zero vs Pattern on master ``` zero pattern diff Os 7.689712e+05 7.915580e+05 0.031380 O3 9.744796e+05 9.953688e+05 0.021133 ``` Zero vs Pattern with the patch ``` zero pattern diff Os 7.689712e+05 7.698424e+05 0.000789 O3 9.744796e+05 9.752952e+05 0.000742 ``` Reviewers: pcc, eugenis, glider, jfb Reviewed By: jfb Subscribers: hubert.reinterpretcast, dexonsmith, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64597
  538. [IndVars] Use exit count reasoning to discharge obviously untaken exits Continue in the spirit of D63618, and use exit count reasoning to prove away loop exits which can not be taken since the backedge taken count of the loop as a whole is provably less than the minimal BE count required to take this particular loop exit. As demonstrated in the newly added tests, this triggers in a number of cases where IndVars was previously unable to discharge obviously redundant exit tests. And some not so obvious ones. Differential Revision: https://reviews.llvm.org/D63733
  539. Dump actual line numbers when dumping the AST to JSON. The "line" attribute is now the physical line within the source file for the location. A "presumedLine" attribute is printed when the presumed line number does not match the given source line number. We continue to not print repeated line information in subsequent source locations, but we track presumed and actual lines separately.
  540. Fix some minor coding-style issues in git-llvm.
  541. Allow the 'git-llvm' tool to push to svn from the split repositories for 'test-suite', 'lnt', 'zorg', and 'www'. This is done by looking at the pathname of the git remote named 'origin', which is not 100% reliable, but should work in most cases.
  542. [FunctionAttrs] Add a test for "nofree" function attribute This patch adds a test for nofree function attribute.
  543. [Support] Move the static initializer install_out_memory_new_handler to InitLLVM An application linking against LLVMSupport should not get the gratuitous set::std_new_handler call. Reviewed By: jfb Differential Revision: https://reviews.llvm.org/D64505
  544. Add missing <atomic> include to appease MSVC builds.
  545. Minor cleanup. Simplify things a bit by removing unnecessary full type qualification. This also happens to avoid a build break with now-unsupported Visual Studio 2015. Differential Review: https://reviews.llvm.org/D64588
  546. Test commit
  547. Support for dumping current PrettyStackTrace on SIGINFO (Ctrl-T) Support SIGINFO (and SIGUSR1 for POSIX purposes) to tell what long-running jobs are doing, as inspired by BSD tools (including on macOS), by dumping the current PrettyStackTrace. This adds a new kind of signal handler for non-fatal "info" signals, similar to the "interrupt" handler that already exists for SIGINT (Ctrl-C). It then uses that handler to update a "generation count" managed by the PrettyStackTrace infrastructure, which is then checked whenever a PrettyStackTraceEntry is pushed or popped on each thread. If the generation has changed---i.e. if the user has pressed Ctrl-T---the stack trace is dumped, though unfortunately it can't include the deepest entry because that one is currently being constructed/destructed. https://reviews.llvm.org/D63750
  548. [AMDGPU] Fix DPP combiner check for exec modification Summary: r363675 changed the exec modification helper function, now called execMayBeModifiedBeforeUse, so that if no UseMI is specified it checks all instructions in the basic block, even beyond the last use. That meant that the DPP combiner no longer worked in any basic block that ended with a control flow instruction, and in particular it didn't work on code sequences generated by the atomic optimizer. Fix it by reinstating the old behaviour but in a new helper function execMayBeModifiedBeforeAnyUse, and limiting the number of instructions scanned. Reviewers: arsenm, vpykhtin Subscribers: kzhuravl, nemanjai, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, kbarton, MaskRay, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64393
  549. [clang-format][tests] Explicitly specify style in some tests Summary: This fixes broken tests when doing an out-of-source build that picks up a random .clang-format on the file system due to the default "file" style. Reviewers: djasper, klimek, MyDeveloperDay, krasimir Reviewed By: MyDeveloperDay Subscribers: lebedev.ri, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D61001
  550. [LegacyPassManager] Small ModuleCount cleanup
  551. Revert "[JSONCompilationDatabase] Strip distcc/ccache/gomacc wrappers from parsed commands." New test is failing on Windows bot This reverts commit 9c0391b36a76f8e3949588de3f44b7314c2318bf.
  552. cmake: Fix install of libclang-cpp.so when LLVM_INSTALL_TOOLCHAIN_ONLY=ON Summary: If CLANG_LINK_CLANG_DYLIB is also enabled, then this library needs to be installed. Fixes PR42575. Reviewers: beanz, smeenai Subscribers: mgorny, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64582 Conflicts: clang/tools/clang-shlib/CMakeLists.txt
  553. [AMDGPU] Restrict v_cndmask_b32 abs/neg modifiers to f32 Summary: D64497 allowed abs/neg source modifiers on v_cndmask_b32 but it doesn't make any sense to apply them to f16 operands; they would interpret the bits of the value as an f32, giving nonsensical results. This patch restricts them to f32 operands. Reviewers: arsenm, hakzsam Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64636
  554. Delete dead stores
  555. cmake: Add INSTALL_WITH_TOOLCHAIN option to add_*_library macros Summary: This will simplify the macros by allowing us to remove the hard-coded list of libraries that should be installed when LLVM_INSTALL_TOOLCHAIN_ONLY is enabled. Reviewers: beanz, smeenai Reviewed By: beanz Subscribers: aheejin, mehdi_amini, mgorny, steven_wu, dexonsmith, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D64580
  556. Delete dead stores
  557. Dump floating-point values as strings when dumping to JSON. This fixes a bug where we would have an invalid JSON attribute (e.g., "value": inf). It also increases the precision of the values because they're not represented as approximate doubles with the host architecture's floating-point model.
  558. Revert "[clangd] Implement typeHierarchy/resolve for subtypes" Causing test failure on Windows bot This reverts commit 5b9484e559d44bd923fc290e335891b1dd2e17c4.
  559. [Driver] Delete dead code
  560. [gn] Tag unneeded variable. When only building targets without assembly parsers (e.g. `llvm_targets_to_build = ["NVPTX"]`), `all_targets` is empty and causes GN to warn about an assigned-but-unused variable. Differential Revision: https://reviews.llvm.org/D31727
  561. [DAGCombine] narrowExtractedVectorBinOp - wrap subvector extraction in helper. NFCI. First step towards supporting 'free' subvector extractions other than concat_vectors.
  562. [LIT] Emit timeout error message only if timeout was reached Summary: This improves readability of LIT output: previously error messages gets emitted that say that there was no error: error: command reached timeout: False Patch by Alexey Sachkov. Reviewers: ddunbar, mgorny, modocache Reviewed By: mgorny Subscribers: delcypher, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64240
  563. [clangd] Fixed toHalfOpenFileRange Summary: - Fixed toHalfOpenFileRange to work for macros as well as template instantiations - Added unit tests Breaking test case for older version of toHalfOpenFileRange: \# define FOO(X) X++ int a = 1; int b = FOO(a); toHalfOpenFileRange for the sourceRange of VarDecl for b returned the wrong Range. Reviewers: sammccall, kadircet Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64562
  564. [InstCombine] Fold select (icmp sgt x, -1), lshr (X, Y), ashr (X, Y) to ashr (X, Y)) Summary: (select (icmp sgt x, -1), lshr (X, Y), ashr (X, Y)) -> ashr (X, Y)) (select (icmp slt x, 1), ashr (X, Y), lshr (X, Y)) -> ashr (X, Y)) Fixes PR41173 Alive proof by @lebedev.ri (thanks) Name: PR41173 %cmp = icmp slt i32 %x, 1 %shr = lshr i32 %x, %y %shr1 = ashr i32 %x, %y %retval.0 = select i1 %cmp, i32 %shr1, i32 %shr => %retval.0 = ashr i32 %x, %y Optimization: PR41173 Done: 1 Optimization is correct! Reviewers: lebedev.ri, spatel Reviewed By: lebedev.ri Subscribers: nikic, craig.topper, llvm-commits, lebedev.ri Tags: #llvm Differential Revision: https://reviews.llvm.org/D64285
  565. Fix test case of llvm-nm using implicit a.out
  566. [test/Object, obj2yaml] - Move test cases from test/Object and cleanup. test/Object is not correct place to have tests that check obj2yaml functionality, because we have test/tools/obj2yaml folder for that. In this patch I merged a few test cases with their YAMLs from Inputs folder, converted one of binary inputs and moved them to tools/obj2yaml folder. There are still another tests that might need the same, so it is initial step. Differential revision: https://reviews.llvm.org/D64555
  567. [tools] [llvm-nm] Default to reading from stdin not a.out Summary: This moves away from defaulting to a.out and uses stdin only if stdin has a file redirected to it. This has been discussed on the llvm-dev mailing list [[ https://lists.llvm.org/pipermail/llvm-dev/2019-July/133642.html | here ]]. Reviewers: jhenderson, rupprecht, MaskRay, chrisjackson Reviewed By: jhenderson, MaskRay Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64290
  568. [clangd] Prioritize indexing of files that share a basename with the open file. Summary: In practice, opening Foo.h will still often result in Foo.cpp making the second index build instead of the first, as the rebuild policy doesn't know to wait. Reviewers: kadircet Subscribers: ilya-biryukov, javed.absar, MaskRay, jkorous, arphaman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64575
  569. [JSONCompilationDatabase] Strip distcc/ccache/gomacc wrappers from parsed commands. Summary: It's common to use compiler wrappers by setting CC="gomacc clang++". This results in both args appearing in compile_commands.json, and clang's driver can't handle this. This patch attempts to recognize this pattern (by looking for well-known wrappers) and dropping argv0 in this case. It conservatively ignores other cases for now: - wrappers with unknown names - wrappers that accept -flags - wrappers where the compiler to use is implied (usually cc or gcc) This is done at the JSONCompilationDatabase level rather than somewhere more fundamental, as (hopefully) this isn't a general conceptual problem, but a messy aspect of the nature of the ecosystem around compile_commands.json. i.e. compilation databases more tightly tied to the build system should not have this problem. Reviewers: phosek, klimek Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64297
  570. Revert "[DwarfDebug] Dump call site debug info" A build failure was found on the SystemZ platform. This reverts commit 9e7e73578e54cd22b3c7af4b54274d743b6607cc.
  571. [clangd] Move the expandAuto tweak from global namespace into annoymous namespace.
  572. [Object/ELF] - Improve error reporting for notes. This patch improves the error messages reported for note sections and phdrs and also makes a cleanup for existent test case. Differential revision: https://reviews.llvm.org/D64470
  573. [NFC][PowerPC] Added test for MachinePRE.
  574. [clangd] Don't run the prepare for tweaks that are disabled. Summary: Previously, we ran the prepare, even for the tweaks that are disabled. Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64565
  575. [RISCV] Allow parsing dot '.' in assembly Summary: Useful for jumps, such as `j .`. I am not sure who should review this. Do not hesitate to change the reviewers if needed. Reviewers: asb, jrtc27, lenary Reviewed By: lenary Subscribers: MaskRay, lenary, hiraditya, rbar, johnrusso, simoncook, apazos, sabuasal, niosHD, kito-cheng, shiva0217, zzheng, edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, rkruppe, PkmX, jocewei, psnobl, benna, Jim, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D63669 Patch by John LLVM (JohnLLVM)
  576. Enable compiler-rt on SPARC This patch enables compiler-rt on SPARC targets. Most of the changes are straightforward: - Add 32 and 64-bit sparc to compiler-rt - lib/builtins/fp_lib.h needed to check if the int128_t and uint128_t types exist (which they don't on sparc) There's one issue of note: many asan tests fail to compile on Solaris/SPARC: fatal error: error in backend: Function "_ZN7testing8internal16BoolFromGTestEnvEPKcb": over-aligned dynamic alloca not supported. Therefore, while asan is still built, both asan and ubsan-with-asan testing is disabled. The goal is to check if asan keeps compiling on Solaris/SPARC. This serves asan in gcc, which doesn't have the problem above and works just fine. With this patch, sparcv9-sun-solaris2.11 test results are pretty good: Failing Tests (9): Builtins-sparc-sunos :: divtc3_test.c Builtins-sparcv9-sunos :: compiler_rt_logbl_test.c Builtins-sparcv9-sunos :: divtc3_test.c [...] UBSan-Standalone-sparc :: TestCases/TypeCheck/misaligned.cpp UBSan-Standalone-sparcv9 :: TestCases/TypeCheck/misaligned.cpp The builtin failures are due to Bugs 42493 and 42496. The tree contained a few additonal patches either currently in review or about to be submitted. Tested on sparcv9-sun-solaris2.11. Differential Revision: https://reviews.llvm.org/D40943
  577. [Sanitizers] Fix SanitizerCommon-Unit :: ./Sanitizer-*-Test/MemoryMappingLayout.DumpListOfModules on Solaris The MemoryMappingLayout.DumpListOfModules currently FAILs on Solaris: [ RUN ] MemoryMappingLayout.DumpListOfModules /vol/llvm/src/compiler-rt/local/lib/sanitizer_common/tests/sanitizer_procmaps_test.cc:52: Failure Value of: found Actual: false Expected: true [ FAILED ] MemoryMappingLayout.DumpListOfModules (22 ms) The problem is that the test expects the executable name from modules[i].full_name(), however the pr_mapname field of struct prmap is just the entry in /proc/<pid>/object, which is "a.out" instead of "Sanitizer-i386-Test". Fortunately, the real name can be determined by looking in proc/<pid>/path where "a.out" is a symlink to the real path. Tested on x86_64-pc-solaris2.11. Differential Revision: https://reviews.llvm.org/D64559
  578. Test commit. NFC. Formatting fix.
  579. [Driver] Delete --no-add-needed for RHEL7 or newer This is really not needed. gcc driver doesn't add this option. BTW, since binutils 2.22, --no-copy-dt-needed-entries (new name of --no-add-needed) is the default.
  580. [YAMLIO] Wrap explicit specialization in llvm::yaml to appease build bots
  581. Fix odd variable names.
  582. [test] Delete trailing spaces from YAML tests after D65566/r365869
  583. [test] Delete trailing spaces from YAML tests
  584. test/Driver/fsanitize.c: delete -target x86_64-linux-gnu from tests that should always be available Follow-up of D64317/r365587.
  585. [AMDGPU] Fixed comment. NFC.
  586. [mips] Fix JmpLink to texternalsym and tglobaladdr on mcroMIPS R6 There is not match for the `MipsJmpLink texternalsym` and `MipsJmpLink tglobaladdr` patterns for microMIPS R6. As a result LLVM incorrectly selects the `JALRC16` compact 2-byte instruction which takes a target instruction address from a register only and assign `R_MIPS_32` relocation for this instruction. This relocation completely overwrites `JALRC16` and nearby instructions. This patch adds missed matching patterns, selects `BALC` instruction and assign a correct `R_MICROMIPS_PC26_S1` relocation. Differential Revision: https://reviews.llvm.org/D64552
  587. [YAMLIO] Remove trailing spaces when outputting maps llvm::yaml::Output::paddedKey unconditionally outputs spaces, which are superfluous if the value to be dumped is a sequence or map. Change `bool NeedsNewLine` to `StringRef Padding` so that it can be overridden to `\n` if the value is a sequence or map. An empty map/sequence is special. It is printed as `{}` or `[]` without a newline, while a non-empty map/sequence follows a newline. To handle this distinction, add another variable `PaddingBeforeContainer` and does the special handling in endMapping/endSequence. Reviewed By: grimar, jhenderson Differential Revision: https://reviews.llvm.org/D64566
  588. [clangd] Implement typeHierarchy/resolve for subtypes Summary: This allows the client to resolve subtypes one level at a time. For supertypes, this is not necessary, because we eagerly compute supertypes and return all levels. Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64308
  589. [X86][PowerPC] Support -mlong-double-128 This patch makes the driver option -mlong-double-128 available for X86 and PowerPC. The CC1 option -mlong-double-128 is available on all targets for users to test on unsupported targets. On PowerPC, -mlong-double-128 uses the IBM extended double format because we don't support -mabi=ieeelongdouble yet (D64283). Reviewed By: rnk Differential Revision: https://reviews.llvm.org/D64277
  590. docs/GithubMove.rst: Add link to GitHub migration status page
  591. Return Undef from isBytewiseValue for empty arrays or structs Reviewers: pcc, eugenis Subscribers: hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64052
  592. NFC: Unforget a colon in a few CHECK: directives. Differential Revision: https://reviews.llvm.org/D64526
  593. [PowerPC] Default to -fomit-frame-pointer when optimization is enabled NetBSD, Linux, CloudABI and Hurd already omit frame pointer for PowerPC. Make it do so for other platforms.
  594. [analyzer] exploded-graph-rewriter: Improve source location dumps. - Correctly display macro expansion and spelling locations. - Use the same procedure to display location context call site locations. - Display statement IDs for program points.
  595. [Driver] Refactor interaction between -f(no-)?omit-frame-pointer and -m(no-)?omit-leaf-frame-pointer Use a tri-state enum to represent shouldUseFramePointer() and shouldUseLeafFramePointer(). This simplifies the logic and fixes PR9825: -fno-omit-frame-pointer doesn't imply -mno-omit-leaf-frame-pointer. and PR24003: /Oy- /O2 should not omit leaf frame pointer: this matches MSVC x86-32. (/Oy- is a no-op on MSVC x86-64.) and: when CC1 option -mdisable-fp-elim if absent, -momit-leaf-frame-pointer can also be omitted. The new behavior matches GCC: -fomit-frame-pointer wins over -mno-omit-leaf-frame-pointer -fno-omit-frame-pointer loses out to -momit-leaf-frame-pointer The behavior makes lots of sense. We have 4 states: - 00) leaf retained, non-leaf retained - 01) leaf retained, non-leaf omitted (this is invalid) - 10) leaf omitted, non-leaf retained (what -momit-leaf-frame-pointer was designed for) - 11) leaf omitted, non-leaf omitted "omit" options taking precedence over "no-omit" options is the only way to make 3 valid states representable with -f(no-)?omit-frame-pointer and -m(no-)?omit-leaf-pointer. Reviewed By: ychen Differential Revision: https://reviews.llvm.org/D64294
  596. [MachinePipeliner] Fix order for nodes with Anti dependence in same cycle Summary: Problem exposed in PowerPC functional testing. We did not consider Anti dependence for nodes in same cycle, so we may end up generating bad machine code. eg: the reduced test won't verify. *** Bad machine code: Using an undefined physical register *** - function: lame_encode_buffer_interleaved - basic block: %bb.4 (0x4bde4e12928) - instruction: %29:gprc = ADDZE %27:gprc, implicit-def dead $carry, implicit $carry - operand 3: implicit $carry Reviewers: bcahoon, kparzysz, hfinkel Subscribers: MaskRay, wuzish, nemanjai, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64192
  597. Handle IntToPtr in isBytewiseValue Summary: This helps with more efficient use of memset for pattern initialization From @pcc prototype for -ftrivial-auto-var-init=pattern optimizations Binary size change on CTMark, (with -fuse-ld=lld -Wl,--icf=all, similar results with default linker options) ``` master patch diff Os 8.238864e+05 8.238864e+05 0.0 O3 1.054797e+06 1.054797e+06 0.0 Os zero 8.292384e+05 8.292384e+05 0.0 O3 zero 1.062626e+06 1.062626e+06 0.0 Os pattern 8.579712e+05 8.338048e+05 -0.030299 O3 pattern 1.090502e+06 1.067574e+06 -0.020481 ``` Zero vs Pattern on master ``` zero pattern diff Os 8.292384e+05 8.579712e+05 0.036578 O3 1.062626e+06 1.090502e+06 0.025124 ``` Zero vs Pattern with the patch ``` zero pattern diff Os 8.292384e+05 8.338048e+05 0.003333 O3 1.062626e+06 1.067574e+06 0.003193 ``` Reviewers: pcc, eugenis Subscribers: hiraditya, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D63967
  598. Codegen, NFC: 32bit test in auto-var-init.cpp
  599. Mark destroying delete test as UNSUPPORTED with clang 7
  600. Tolerate import errors in "not.py" implementation
  601. Reorganize the 'bit' header to make most of the facilities available for internal use pre-C++20. NFC for external users
  602. NFC: lit: python3 compatibility for functions usePlatformSdkOnDarwin/findPlatformSdkVersionOnMacOS These functions should decode subprocess output
  603. [InstCombine] Reorder pow() transformations (NFC) Move the transformation from `powf(x, itofp(y))` to `powi(x, y)` to the group of transformations related to the exponent.
  604. Re-Revert Devirtualize destructor of final class. This reverts r365509 (git commit d088720edad9c29ee0d622b5d69092e18a9ac0bd) This is a second revert[1] due to failures in internal test cases (shared offline) found during more thorough testing. [1] Original patch commited as r364100, reverted as r364359, recommitted as r365509
  605. [clangd] Add a missing early return in getTypeHierarchy() Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64307
  606. Add another buildbot username to the workaround list
  607. Attempt to override broken buildbot config for libc++abi. The buildbots were changed to pass -DLIBCXX_CXX_ABI=libcxxabi, but they don't provide an include path for the library, so cxxabi.h is never found while building libc++. This is a temporary change until the buildbots are updated or until D63883 lands in a form that unbreaks the bots
  608. [AMDGPU] Skip calculating callee saved registers for entry function. Reviewers: arsenm Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64596
  609. [CMake][Fuchsia] Use RelWithDebInfo to build runtimes We want to preserve debug info in our runtimes to aid symbolization and debugging; for shared libraries this will be stripped away during install-stripped step and distributed via .build-id, for static archives it's part of the archive and it's a responsibility of the consumer to strip it away in the final binary if not needed. Differential Revision: https://reviews.llvm.org/D64605
  610. [clangd] Fix MSVC build failure. http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-windows10pro-fast/builds/26898
  611. AMDGPU: s_waitcnt field should be treated as unsigned Also make it an ImmLeaf, so it should work with global isel as well, which was part of the point of moving it in the first place.
  612. Use clang driver for libfuzzer tests on Windows Summary: There's no real reason to use clang-cl on Windows, the clang driver works just as well. This fixes a test which uses the -O0 flag, which was recently removed from clang-cl to match MSVC, which lacks this flag. While I'm here, remove the explicit -std=c++11 flag. Previously, this flag was necessary when the default C++ standard was C++98. Now that the default is C++14, this is no longer necessary. It's problematic on Windows, because the Visual C++ standard library relies on C++14 features, and attempting to compile it with C++11 results in errors. Rather than adding logic to conditionally set the standard to C++11 only on non-Win, this flag can be removed. See http://lab.llvm.org:8011/builders/clang-x64-windows-msvc and https://reviews.llvm.org/D64506. Reviewers: morehouse, thakis Subscribers: #sanitizers, llvm-commits Tags: #sanitizers, #llvm Differential Revision: https://reviews.llvm.org/D64587
  613. Fix memory leak in set and map. When assigning an initializer list into set/map, libc++ would leak memory if the initializer list contained equivalent keys because we failed to check if the insertion was successful.
  614. [sancov] Ignore PC samples with value 0 The sancov runtime for the (Fuchsia) Zircon kernel delivers results in the standard format, but as the full array of possible samples with 0 in uncovered slots. That runtime delivers "live" data and has no final "export" pass to compactify out the uncovered slots, and it seems silly to require another offline tool just for that. Patch By: mcgrathr Differential Revision: https://reviews.llvm.org/D63695
  615. [NewPM] Port Sancov This patch contains a port of SanitizerCoverage to the new pass manager. This one's a bit hefty. Changes: - Split SanitizerCoverageModule into 2 SanitizerCoverage for passing over functions and ModuleSanitizerCoverage for passing over modules. - ModuleSanitizerCoverage exists for adding 2 module level calls to initialization functions but only if there's a function that was instrumented by sancov. - Added legacy and new PM wrapper classes that own instances of the 2 new classes. - Update llvm tests and add clang tests. Differential Revision: https://reviews.llvm.org/D62888
  616. [AMDGPU] Fixed asan error with agpr spilling Instruction was used after it was erased.
  617. Fix build errors LLVM tests are disabled. Original patch from alanbaker@google.com Fixes the error: CMake Error in <...>/llvm/cmake/modules/CMakeLists.txt: export called with target "LLVMTestingSupport" which requires target "gtest" that is not in the export set. This occurs when LLVM is embedded in a larger project, but is configured not to include tests. If testing is disabled gtest isn't available and LLVM fails to configure. Differential revision: https://reviews.llvm.org/D63097
  618. CodeGen: Suppress c++ warnings in test
  619. [mips] Simplify test case. NFC Before rL295040 the linker just crashed when a GOT relocation (R_MIPS_GOT16) comes from a merge section. To ensure that this bug still fixed it's enough to check that the linker does not crash and create GOT entries.
  620. [AMDGPU] gfx908 agpr spilling Differential Revision: https://reviews.llvm.org/D64594
  621. Fix a Python3 compatibility error File "clang/test/lit.cfg.py", line 186, in <module> config.available_features.add('macos-sdk-' + macOSSDKVersion) TypeError: must be str, not bytes
  622. Rename libclang_shared to libclang-cpp Summary: Fix bug 42475 Reviewers: beanz, tstellar Reviewed By: beanz Subscribers: kimgr, mgorny, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64278
  623. [Attributor] Deduce "nosync" function attribute. Introduce and deduce "nosync" function attribute to indicate that a function does not synchronize with another thread in a way that other thread might free memory. Reviewers: jdoerfert, jfb, nhaehnle, arsenm Subscribers: wdng, hfinkel, nhaenhle, mehdi_amini, steven_wu, dexonsmith, arsenm, uenoku, hiraditya, jfb, llvm-commits Differential Revision: https://reviews.llvm.org/D62766
  624. [AMDGPU] gfx908 hazard recognizer Differential Revision: https://reviews.llvm.org/D64593
  625. [InstCombine][NFCI] Add more test coverage to onehot_merge.ll Prep work for upcoming patch D64275.
  626. [analyzer] exploded-graph-rewriter: Fix filenames in program point. Fix a typo in JSON field name.
  627. [AMDGPU] gfx908 scheduling Differential Revision: https://reviews.llvm.org/D64590
  628. [clang-shlib] Fix clang-shlib for PRIVATE dependencies Any static library with a PRIVATE dependency ends up with a $<LINK_ONLY:...> generator expression in its INTERFACE_LINK_LIBRARIES, which won't be evaluated by the $<TARGET_PROPERTY:...>, so we end up with an unevaluated generator expression in the generated build file and Ninja chokes on the dollar sign. Just use the static library directly for its dependencies instead of trying to propagate dependencies manually. Differential Revision: https://reviews.llvm.org/D64579
  629. [AMDGPU] gfx908 mfma support Differential Revision: https://reviews.llvm.org/D64584
  630. [COFF] Share the tail in delayimport symbol thunks E.g. for x86_64, previously each symbol's thunk was 87 bytes. Now there's a 12 byte thunk per symbol, plus a shared 83 byte tail function. This is similar to what both MS link.exe and GNU tools do for delay imports. Differential Revision: https://reviews.llvm.org/D64288
  631. CodeGen, NFC: Test for auto-init for 32bit pointers
  632. [OPENMP]Improve handling of analysis of unsupported VLAs in reductions. Fixed the processing of the unsupported VLAs in the reduction clauses. Used targetDiag if the diagnostics can be delayed and emit it immediately if the target does not support VLAs and we're parsing target directive with the reduction clauses.
  633. Open native file handles to avoid converting from FDs, NFC Follow up to r365588.
  634. [UpdateTestChecks] Emit warning when invalid test paths Summary: Recently I ran into the following issue: ./update_test_checks.py /path/not-existing-file.ll The script was silent and I was suprised why the real test file hadn't been updated. Solution: Emit warning if we detect this problem. Reviewers: lebedev.ri, spatel, jdoerfert, nikic Reviewed By: lebedev.ri, spatel, jdoerfert, nikic Subscribers: jdoerfert, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64572
  635. [scudo][standalone] NFC corrections Summary: A few corrections: - rename `TransferBatch::MaxCached` to `getMaxCached` to conform with the style guide; - move `getBlockBegin` from `Chunk::` to `Allocator::`: I believe it was a fallacy to have this be a `Chunk` method, as chunks' relationship to backend blocks are up to the frontend allocator. It makes more sense now, particularly with regard to the offset. Update the associated chunk test as the method isn't available there anymore; - add a forgotten `\n` to a log string; - for `releaseToOs`, instead of starting at `1`, start at `0` and `continue` on `BatchClassId`: in the end it's identical but doesn't assume a particular class id for batches; - change a `CHECK` to a `reportOutOfMemory`: it's a clearer message Reviewers: hctim, morehouse, eugenis, vitalybuka Reviewed By: hctim Subscribers: delcypher, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D64570
  636. [NFC] Revisited tests for D64285
  637. Revert "[CGDebugInfo] Simplify EmitFunctionDecl parameters, NFC" This reverts commit 1af41074445229fea66b99710a850e5f42ecfa95.
  638. [NVPTX] Remove now unused atomic.load.add.f32 intrinsics
  639. [PowerPC][NFC] Update testcase to avoid dead code The original testcase might be optimized out due to dead code, update the testcase to avoid it.
  640. [CGDebugInfo] Simplify EmitFunctionDecl parameters, NFC Replace a `llvm::Function *` parameter with a bool, which seems harder to set to the wrong value by accident. Differential Revision: https://reviews.llvm.org/D64540
  641. [Driver] -noprofilelib flag This flag is analoguous to other flags like -nostdlib or -nolibc and could be used to disable linking of profile runtime library. This is useful in certain environments like kernel, where profile instrumentation is still desirable, but we cannot use the standard runtime library.
  642. [lld-link] implement -thinlto-{prefix,object-suffix}-replace Summary: Adds the following two options to lld-link: -thinlto-prefix-replace: allows replacing a prefix in paths generated for ThinLTO. This can be used to ensure index files and native object files are stored in unique directories, allowing multiple distributed ThinLTO links to proceed concurrently. -thinlto-object-suffix-replace: allows replacing a suffix in object file paths involved in ThinLTO. This allows minimized index files to be used for the thin link while storing the paths to the full bitcode files for subsequent steps (code generation and final linking). Reviewers: ruiu, tejohnson, pcc, rnk Subscribers: mehdi_amini, steven_wu, dexonsmith, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64542
  643. [TSan] Move DECLARE_REAL macro outside of namespace This should fix the "undefined reference to tsan::interception::real_setjmp" linker errors.
  644. [profile][test] Fix Profile-* :: instrprof-merge.c etc. on SPARC While working on https://reviews.llvm.org/D40900 (which effectively is about enabling compiler-rt on sparc these days), I came across two failing profile testcases: Profile-sparc :: instrprof-merge-match.test Profile-sparc :: instrprof-merge.c Profile-sparcv9 :: instrprof-merge-match.test Profile-sparcv9 :: instrprof-merge.c All of them crashed with a SIGBUS in __llvm_profile_merge_from_buffer: Thread 2 received signal SIGSEGV, Segmentation fault. [Switching to Thread 1 (LWP 1)] 0x00012368 in __llvm_profile_merge_from_buffer ( ProfileData=0x2384c <main.Buffer> "\377lprofR\201", ProfileSize=360) at /vol/llvm/src/llvm/local/projects/compiler-rt/lib/profile/InstrProfilingMerge.c:95 95 SrcDataEnd = SrcDataStart + Header->DataSize; where Header is insufficiently aligned for a strict-alignment target like SPARC. Fixed by forcing the alignment to uint64_t, the members of struct __llvm_profile_header, in the callers. Tested on sparcv9-sun-solaris2.11. https://reviews.llvm.org/D64498
  645. [clangd][NFC] Decrease template depth limit in RecursiveHierarchyUnbounded test ...to minimize the chance of stack overflow before reaching the limit.
  646. [X86] Pre commit test cases for D64574. Along with a test case for PR42571. NFC
  647. [WebAssembly] Assembler: support negative float constants. Reviewers: dschuff Subscribers: sbc100, jgravelle-google, aheejin, sunfish, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64367
  648. Explicitly define __STDC_FORMAT_MACROS for PRIu64 Summary: Builds are failing on RHEL machines because of PRIu64. lvm/projects/compiler-rt/lib/gwp_asan/guarded_pool_allocator.cpp:420:50: error: expected ')' `snprintf(ThreadBuffer, kThreadBufferLen, "%" PRIu64, ThreadID);` inttypes.h in RHEL uses PRIu64 macros only when __STDC_FORMAT_MACROS is defined. Author: DTharun Reviewers: hctim Reviewed By: hctim Differential Revision: https://reviews.llvm.org/D64388
  649. [lld-link] implement -thinlto-index-only Summary: This implements -thinlto-index-only, -thinlto-index-only:, and -thinlto-emit-imports-files options in lld-link. They are analogous to their counterparts in ld.lld: -thinlto-index-only causes us to perform ThinLTO's thin link and write index files, but not perform code generation. -thinlto-index-only: does the same, but also writes a text file listing the native object files expected to be generated. -thinlto-emit-imports-files creates a text file next to each index file, listing the files to import from. Reviewers: ruiu, tejohnson, pcc, rnk Subscribers: mehdi_amini, steven_wu, dexonsmith, arphaman, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64461
  650. [HIP] Add GPU arch gfx1010, gfx1011, and gfx1012 Differential Revision: https://reviews.llvm.org/D64364
  651. [CodeGen] NVPTX: Switch from atomic.load.add.f32 to atomicrmw fadd
  652. [Docs] Add standardized header links to analyzer doc Summary: Header links should have some standard form so clang tidy docs can easily reference them. The form is as follows. Start with the analyzer full name including packages. Replace all periods with dashes and lowercase everything. Ex: core.CallAndMessage -> core-callandmessage Reviewers: JonasToth, aaron.ballman, NoQ, Szelethus Reviewed By: aaron.ballman, Szelethus Subscribers: nickdesaulniers, lebedev.ri, baloghadamsoftware, mgrang, a.sidorin, Szelethus, jfb, donat.nagy, dkrupp, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64543
  653. [NVPTX] Use atomicrmw fadd instead of intrinsics AutoUpgrade the old intrinsics to atomicrmw fadd.
  654. gn build: Merge r365792
  655. [clangd] Avoid template in Task constructor, hopefully fix MSVC build
  656. [clangd] Consume llvm::Error in test after r365792
  657. [clangd] Implementation of auto type expansion. Add a tweak for clangd to replace an auto keyword to the deduced type. This way a user can declare something with auto and then have the IDE/clangd replace auto with whatever type clangd thinks it is. In case of long/complext types this makes is reduces writing effort for the user. The functionality is similar to the hover over the auto keyword. Example (from the header): ``` /// Before: /// auto x = Something(); /// ^^^^ /// After: /// MyClass x = Something(); /// ^^^^^^^ ``` Patch by kuhnel! (Christian Kühnel) Differential Revision: https://reviews.llvm.org/D62855
  658. [X86] Merge negated ISD::SUB nodes into X86ISD::SUB equivalent (PR40483) Follow up to D58597, where it was noted that the commuted ISD::SUB variant was having problems with lack of combines. See also D63958 where we untangled setcc/sub pairs. Differential Revision: https://reviews.llvm.org/D58875
  659. [scudo][standalone] Merge Spin & Blocking mutex into a Hybrid one Summary: We ran into a problem on Fuchsia where yielding threads would never be deboosted, ultimately resulting in several threads spinning on the same TSD, and no possibility for another thread to be scheduled, dead-locking the process. While this was fixed in Zircon, this lead to discussions about if spinning without a break condition was a good decision, and settled on a new hybrid model that would spin for a while then block. Currently we are using a number of iterations for spinning that is mostly arbitrary (based on sanitizer_common values), but this can be tuned in the future. Since we are touching `common.h`, we also use this change as a vehicle for an Android optimization (the page size is fixed in Bionic, so use a fixed value too). Reviewers: morehouse, hctim, eugenis, dvyukov, vitalybuka Reviewed By: hctim Subscribers: srhines, delcypher, jfb, #sanitizers, llvm-commits Tags: #llvm, #sanitizers Differential Revision: https://reviews.llvm.org/D64358
  660. Fix a few 'no newline at end of file' warnings that Xcode emits (Xcode even has a snazzy "Fix" button, but clicking that inserts two newlines. So close!)
  661. [libc++] Implement deduction guides for <unordered_set> Thanks to Arthur O'Dwyer for the patch. Differential Revision: https://reviews.llvm.org/D58617
  662. gn build: Merge r365773
  663. [OPENMP]Initial fix PR42392: Improve -Wuninitialized warnings for OpenMP programs. Summary: Some OpenMP clauses rely on the values of the variables. If the variable is not initialized and used in OpenMP clauses that depend on the variables values, it should be reported that the uninitialized variable is used in the OpenMP clause expression. This patch adds initial processing for uninitialized variables in OpenMP constructs. Currently, it checks for use of the uninitialized variables in the structured blocks. Reviewers: NoQ, Szelethus, dcoughlin, xazax.hun, a.sidorin, george.karpenkov, szepet Subscribers: rnkovacs, guansong, jfb, jdoerfert, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64356
  664. [DAGCombine] narrowInsertExtractVectorBinOp - add CONCAT_VECTORS support We already split extract_subvector(binop(insert_subvector(v,x),insert_subvector(w,y))) -> binop(x,y). This patch adds support for extract_subvector(binop(concat_vectors(),concat_vectors())) cases as well. In particular this means we don't have to wait for X86 lowering to convert concat_vectors to insert_subvector chains, which helps avoid some cases where demandedelts/combine calls occur too late to split large vector ops. The fast-isel-store.ll load folding regression is annoying but I don't think is that critical. Differential Revision: https://reviews.llvm.org/D63653
  665. RegUsageInfoCollector: Skip calling conventions I missed before
  666. Fix support for user mode emulation when using cmake/lit. When using user mode emulation, i.e. cross-compiling programs for a different target and running them on a host under qemu user mode emulation, timeit and fpcmp should have host versions, not target versions. Running under user mode emulation had been broken for a while, presumably since https://reviews.llvm.org/rT341257 I first tried an alternative approach where fpcmp would be run under qemu user mode emulation too. That in itself worked, but if going for that approach, for orthogonality reasons, we probably should also run the other helper programs as if they were running on the target, i.e. also under qemu user mode emulation. I ran into issues with running timeit under qemu user mode emulation and also running RunSafely.sh under user mode emulation doesn't seem trivial. In the end, it seemed better to me to explicitly add a cmake option to mark that we're running under qemu user mode emulation, and in that mode, only aim to run the test/benchmark under qemu user mode emulation, rather than also all the helper programs (such as fpcmp, timeit, RunSafely.sh) under it (which is what would be needed if we just kept on using only the RUN_UNDER option for qemu user mode emulation. Differential Revision: https://reviews.llvm.org/D61597
  667. AMDGPU/GlobalISel: Move kernel argument handling to separate function
  668. Fix missing C++ mode comment
  669. GlobalISel: Use Register
  670. Revert r365775 - "[Object/ELF] - Improve error reporting for notes." It broke BB: http://lab.llvm.org:8011/builders/clang-x86_64-debian-fast/builds/15419
  671. [clangd] Remove an extra ";", NFC
  672. Added mapping for pointers captured in Lambdas in OpenMP target regions, by David Truby. Summary: This adds a zero length array section mapping for each pointer captured by a lambda that is used in a target region, as per section 2.19.7.1 of the OpenMP 5 specification. Reviewers: ABataev Reviewed By: ABataev Subscribers: guansong, jdoerfert, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64558
  673. [clangd][QueryDriver] Use language from underlying database if possible Reviewers: sammccall Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64489
  674. [Object/ELF] - Improve error reporting for notes. This patch improves the error messages reported for note sections and phdrs and also makes a cleanup for existent test case. Differential revision: https://reviews.llvm.org/D64470
  675. [InstCombine] don't move FP negation out of a constant expression -(X * ConstExpr) becomes X * (-ConstExpr), so don't reverse that and infinite loop.
  676. [clangd] Add priorities to background index queue, extract to separate class Reviewers: kadircet Subscribers: mgorny, ilya-biryukov, MaskRay, jkorous, arphaman, jfb, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64560
  677. [yaml2obj/elf-override-shsize.yaml] - An attemp to fix ppc64 bot. Failture: http://lab.llvm.org:8011/builders/clang-ppc64be-linux/builds/35670/steps/ninja%20check%201/logs/FAIL%3A%20LLVM%3A%3Aelf-override-shsize.yaml Solution: Change `od` tool invocation to print single bytes.
  678. [WebAssembly] Import __stack_pointer when building -pie binaries The -pie binary doesn't know that layout ahead of time so needs to import the stack pointer from the embedder, just like we do already for shared libraries. This change is needed in order to address: https://github.com/emscripten-core/emscripten/issues/8915 Differential Revision: https://reviews.llvm.org/D64516
  679. OpaquePtr: switch to GlobalValue::getValueType in a few places. NFC.
  680. OpaquePtr: use byval accessor instead of inspecting pointer type. NFC. The accessor can deal with both "byval(ty)" and "ty* byval" forms seamlessly.
  681. OpaquePtr: use load instruction directly for type. NFC.
  682. InstructionSimplify: Simplify InstructionSimplify. NFC. The interface predates CallBase, so both it and implementation were significantly more complicated than they needed to be. There was even some redundancy that could be eliminated. Should also help with OpaquePointers by not trying to derive a function's type from it's PointerType.
  683. [yaml2obj] - Allow overriding the sh_size field. There is no way to set broken sh_size field currently for sections. It can be usefull for writing the test cases. Differential revision: https://reviews.llvm.org/D64401
  684. [NFC] Updated tests for D64285
  685. [clangd] Remove the extra ";", NFC
  686. [clangd] Fix an assertion crash in "ExtractVariable" tweak Summary: GetTypePtr requires that the type should not be null, otherwise we hit an assertion, we should use getTypePtrOrNull instead. Reviewers: sammccall, SureYeaah Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64556
  687. [llvm-readobj/llvm-readelf] - Report a warning instead of a error when dumping a broken dynamic section. It does not make sence to stop dumping the object if the broken dynamic section was found. In this patch I changed the behavior from "report an error" to "report a warning". This matches GNU. Differential revision: https://reviews.llvm.org/D64472
  688. [ELF] Handle non-glob patterns before glob patterns in version scripts & fix a corner case of --dynamic-list This fixes PR38549, which is silently accepted by ld.bfd. This seems correct because it makes sense to let non-glob patterns take precedence over glob patterns. lld issues an error because `assignWildcardVersion(ver, VER_NDX_LOCAL);` is processed before `assignExactVersion(ver, v.id, v.name);`. Move all assignWildcardVersion() calls after assignExactVersion() calls to fix this. Also, move handleDynamicList() to the bottom. computeBinding() called by includeInDynsym() has this cryptic rule: if (versionId == VER_NDX_LOCAL && isDefined() && !isPreemptible) return STB_LOCAL; Before the change: * foo's version is set to VER_NDX_LOCAL due to `local: *` * handleDynamicList() is called - foo.computeBinding() is STB_LOCAL - foo.includeInDynsym() is false - foo.isPreemptible is not set (wrong) * foo's version is set to V1 After the change: * foo's version is set to VER_NDX_LOCAL due to `local: *` * foo's version is set to V1 * handleDynamicList() is called - foo.computeBinding() is STB_GLOBAL - foo.includeInDynsym() is true - foo.isPreemptible is set (correct) Reviewed By: ruiu Differential Revision: https://reviews.llvm.org/D64550
  689. [ELF] Warn rather than error when duplicate version assignments occur In lvm2, libdevmapper.so is linked with a version script with duplicate version assignments: DM_1_02_138 { global: ... dm_bitset_parse_list; ... }; DM_1_02_129 { global: ... dm_bitset_parse_list; ... }; ld.bfd silently accepts this while gold issues a warning. We currently error, thus inhibit producing the executable. Change the error to warning to allow this case, and improve the message. There are some cases where ld.bfd error `anonymous version tag cannot be combined with other version tags` but we just warn. It is probably OK for now. Reviewed By: grimar, ruiu Differential Revision: https://reviews.llvm.org/D64549
  690. [InstCombine] Reorder recently added/improved pow transformations Changed cases are now faster with exp2.
  691. Revert [BitcodeReader] Validate OpNum, before accessing Record array. This reverts r365750 (git commit 8b222ecf2769ee133691f208f6166ce118c4a164) llvm-dis runs out of memory while opening invalid-fcmp-opnum.bc on llvm-hexagon-elf, probably because the bitcode file contains other suspicious values. http://lab.llvm.org:8011/builders/llvm-hexagon-elf/builds/21949
  692. [clangd] Fix windows buildbots
  693. [X86] Regenerate intrinsics tests. NFCI.
  694. [AMDGPU] Regenerate idot tests. NFCI. Reduces diff in D63281.
  695. [llvm-objcopy] Don't change permissions of non-regular output files There is currently an EPERM error when a regular user executes `llvm-objcopy a.o /dev/null`. Worse, root can even change the mode bits of /dev/null. Fix it by checking if the output file is special. A new overload of llvm::sys::fs::setPermissions with FD as the parameter is added. Users should provide `perm & ~umask` as the parameter if they intend to respect umask. The existing overload of llvm::sys::fs::setPermissions may be deleted if we can find an implementation of fchmod() on Windows. fchmod() is usually better than chmod() because it saves syscalls and can avoid race condition. Reviewed By: jakehehrlich, jhenderson Differential Revision: https://reviews.llvm.org/D64236
  696. [X86] -fno-plt: use GOT __tls_get_addr only if GOTPCRELX is enabled Summary: As of binutils 2.32, ld has a bogus TLS relaxation error when the GD/LD code sequence using R_X86_64_GOTPCREL (instead of R_X86_64_GOTPCRELX) is attempted to be relaxed to IE/LE (binutils PR24784). gold and lld are good. In gcc/config/i386/i386.md, there is a configure-time check of as/ld support and the GOT relaxation will not be used if as/ld doesn't support it: if (flag_plt || !HAVE_AS_IX86_TLS_GET_ADDR_GOT) return "call\t%P2"; return "call\t{*%p2@GOT(%1)|[DWORD PTR %p2@GOT[%1]]}"; In clang, -DENABLE_X86_RELAX_RELOCATIONS=OFF is the default. The ld.bfd bogus error can be reproduced with: thread_local int a; int main() { return a; } clang -fno-plt -fpic a.cc -fuse-ld=bfd GOTPCRELX gained relative good support in 2016, which is considered relatively new. It is even difficult to conditionally default to -DENABLE_X86_RELAX_RELOCATIONS=ON due to cross compilation reasons. So work around the ld.bfd bug by only using GOT when GOTPCRELX is enabled. Reviewers: dalias, hjl.tools, nikic, rnk Reviewed By: nikic Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64304
  697. [clangd] Add a missing "return nullptr;" to the SelectionTree::commonAncestor. This would fix some mysterious crashes on codeAction in clangd.
  698. [BitcodeReader] Validate OpNum, before accessing Record array. Currently invalid bitcode files can cause a crash, when OpNum exceeds the number of elements in Record, like in the attached bitcode file. The test case was generated by clusterfuzz: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=15698 Reviewers: t.p.northover, thegameg, jfb Reviewed By: jfb Differential Revision: https://reviews.llvm.org/D64507
  699. [ARM][LowOverheadLoops] Correct offset checking This patch addresses a couple of problems: 1) The maximum supported offset of LE is -4094. 2) The offset of WLS also needs to be checked, this uses a maximum positive offset of 4094. The use of BasicBlockUtils has been changed because the block offsets weren't being initialised, but the isBBInRange checks both positive and negative offsets. ARMISelLowering has been tweaked because the test case presented another pattern that we weren't supporting.
  700. [clangd] Reland rL365634 This was reverted in rL365678, the failure was due to YAML parsing of compile_commands.json. Converting backslashes to forward slashes to fix the issue in unittest.
  701. [ARM] Remove nonexistent unsigned forms of MVE VQDMLAH. The VQDMLAH.U8, VQDMLAH.U16 and VQDMLAH.U32 instructions don't actually exist: the Armv8.1-M architecture spec only lists signed forms of that instruction. The unsigned ones were added in error: they existed in an early draft of the spec, but they were removed before the public version, and we missed that particular spec change. Also affects the variant forms VQDMLASH, VQRDMLAH and VQRDMLASH. Reviewers: miyuki Subscribers: javed.absar, kristof.beyls, hiraditya, dmgreen, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64502
  702. [NFC][PowerPC] Added test to track current behaviour of TailDup
  703. [clangd] Added highlightings for namespace specifiers. Summary: Added highlightings for namespace specifiers. Reviewers: hokein, sammccall, ilya-biryukov Subscribers: MaskRay, jkorous, arphaman, kadircet, cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64492
  704. [MIPS GlobalISel] Skip copies in addUseDef and addDefUses Skip copies between virtual registers during search for UseDefs and DefUses. Since each operand has one def search for UseDefs is straightforward. But since operand can have many uses, we have to check all uses of each copy we traverse during search for DefUses. Differential Revision: https://reviews.llvm.org/D64486
  705. [MIPS GlobalISel] RegBankSelect for chains of ambiguous instructions When one of the uses/defs of ambiguous instruction is also ambiguous visit it recursively and search its uses/defs for instruction with only one mapping available. When all instruction in a chain are ambiguous arbitrary mapping can be selected. For s64 operands in ambiguous chain fprb is selected since it results in less instructions then having to narrow scalar s64 to s32. For s32 both gprb and fprb result in same number of instructions and gprb is selected like a general purpose option. At the moment we always avoid cross register bank copies. TODO: Implement a model for costs calculations of different mappings on same instruction and cross bank copies. Allow cross bank copies when appropriate according to cost model. Differential Revision: https://reviews.llvm.org/D64485
  706. Revert Recommit "[CommandLine] Remove OptionCategory and SubCommand caches from the Option class." This reverts r365675 (git commit 43d75f977853c3ec891a440c362b2df183a211b5) The patch causes a crash in SupportTests (CommandLineTest.AliasesWithArguments).
  707. Remove some redundant code from r290372 and improve a comment.
  708. [ARM][ParallelDSP] Change the search for smlads Two functional changes have been made here: - Now search up from any add instruction to find the chains of operations that we may turn into a smlad. This allows the generation of a smlad which doesn't accumulate into a phi. - The search function has been corrected to stop it falsely searching up through an invalid path. The bulk of the changes have been making the Reduction struct a class and making it more C++y with getters and setters. Differential Revision: https://reviews.llvm.org/D61780
  709. [ASan] Use __sanitizer_fill_shadow for FastPoisonShadow on Fuchsia This is the optimized implementation for Fuchsia provided by the libc. Differential Revision: https://reviews.llvm.org/D64166
  710. [test] Silence gcc 7.4 warning [NFC] Without this gcc 7.4.0 complains with ../unittests/Analysis/ValueTrackingTest.cpp:937:66: error: ISO C++11 requires at least one argument for the "..." in a variadic macro [-Werror] ::testing::ValuesIn(IsBytewiseValueTests)); ^
  711. Fix build breakage on Win32.
  712. [clang-doc] Silence compiler warning with gcc 7.4 [NFC] Without the fix gcc 7.4.0 complains with /data/repo/master/clang-tools-extra/clang-doc/HTMLGenerator.cpp: In member function 'llvm::SmallString<16> clang::doc::{anonymous}::HTMLTag::ToString() const': /data/repo/master/clang-tools-extra/clang-doc/HTMLGenerator.cpp:165:1: error: control reaches end of non-void function [-Werror=return-type] } ^ /data/repo/master/clang-tools-extra/clang-doc/HTMLGenerator.cpp: In member function 'bool clang::doc::{anonymous}::HTMLTag::HasInlineChildren() const': /data/repo/master/clang-tools-extra/clang-doc/HTMLGenerator.cpp:142:1: error: control reaches end of non-void function [-Werror=return-type] } ^ /data/repo/master/clang-tools-extra/clang-doc/HTMLGenerator.cpp: In member function 'bool clang::doc::{anonymous}::HTMLTag::IsSelfClosing() const': /data/repo/master/clang-tools-extra/clang-doc/HTMLGenerator.cpp:126:1: error: control reaches end of non-void function [-Werror=return-type] } ^ cc1plus: all warnings being treated as errors
  713. Add NetBSD LSan support Summary: Combine few relatively small changes into one: - implement internal_ptrace() and internal_clone() for NetBSD - add support for stoptheworld based on the ptrace(2) API - define COMPILER_RT_HAS_LSAN for NetBSD - enable tests for NetBSD/amd64 Inspired by the original implementation by Christos Zoulas in netbsd/src for GCC. The implementation is in theory CPU independent through well defined macros across all NetBSD ports, however only the x86_64 version was tested. Reviewers: mgorny, dvyukov, vitalybuka, joerg, jfb Reviewed By: vitalybuka Subscribers: dexonsmith, jfb, srhines, kubamracek, llvm-commits, christos Tags: #llvm Differential Revision: https://reviews.llvm.org/D64057
  714. Fix build breakage on Darwin.
  715. Update comments for r365730. NFC.
  716. Fix build breakage on Win32.
  717. [WebAssembly] Print error message for llvm.clear_cache intrinsic Summary: Wasm does not currently support `llvm.clear_cache` intrinsic, and this prints a proper error message instead of segfault. Reviewers: dschuff, sbc100, sunfish Subscribers: jgravelle-google, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64322
  718. [Coding style change][lld] Rename variables for non-ELF ports This patch does the same thing as r365595 to other subdirectories, which completes the naming style change for the entire lld directory. With this, the naming style conversion is complete for lld. Differential Revision: https://reviews.llvm.org/D64473
  719. [InstCombine][NFCI] Add test coverage to onehot_merge.ll Prep work for upcoming patch D64275.
  720. Increase the number of parser diagnostics. The reserved range for parser diagnostics is getting close to being filled, so increase the space for them.
  721. [SCEV] teach SCEV symbolical execution about overflow intrinsics folding. Differential Revision: https://reviews.llvm.org/D64422
  722. Change another test I missed in r365724
  723. clang-cl: Remove -O0 option cl.exe doesn't understand it; there's /Od instead. See also the review thread for r229575. Update lots of compiler-rt tests to use -Od instead of -O0. Ran `rg -l 'clang_cl.*O0' compiler-rt/test/ | xargs sed -i -c 's/-O0/-Od/'` Differential Revision: https://reviews.llvm.org/D64506
  724. Replace three "strip & accumulate" implementations with a single one This patch replaces the three almost identical "strip & accumulate" implementations for constant pointer offsets with a single one, combining the respective functionalities. The old interfaces are kept for now. Differential Revision: https://reviews.llvm.org/D64468
  725. [NFC] Adjust "invalid.ll.bc" tests to check for AttrKind #255 not #63 We are about to add enum attributes with AttrKind numbers >= 63. This means we cannot use AttrKind #63 to test for an invalid attribute number in the RAW format anymore. This patch changes the number of an invalid attribute to #255. There is no change to the character of the tests. Differential Revision: https://reviews.llvm.org/D64531
  726. Various minor tweaks to CLCompatOptions.td - Add back indentation I accidentally removed in r364901 - Wrap two lines to 80 cols - Slightly tighten up help text for several flags - Consistently use "Do not" instead of "Don't" - Make every option description start with a verb - Use "Set" instead of "Specify" - Mark default values of options more consistently - Remove text about "/Zi" not producing PDBs since it's confusing for people not intimately familiar with the implementation of the normal PDB pipeline. /Zi lets the linker produce PDBs, which is what most users want. - Consistently use "file" over "filename" in meta var names, consistently use "file name" over "filename" in text - Make all output setting options have consistent language
  727. [X86] Don't convert 8 or 16 bit ADDs to LEAs on Atom in FixupLEAPass. We use the functions that convert to three address to do the conversion, but changing an 8 or 16 bit will cause it to create a virtual register. This can't be done after register allocation where this pass runs. I've switched the pass completely to a white list of instructions that can be converted to LEA instead of a blacklist that was incorrect. This will avoid surprises if we enhance the three address conversion function to include additional instructions in the future. Fixes PR42565.
  728. [AMDGPU] gfx908 atomic fadd and atomic pk_fadd Differential Revision: https://reviews.llvm.org/D64435
  729. [CGDebugInfo] Fix -femit-debug-entry-values crash on os_log_helpers An os_log_helper FunctionDecl may not have a body. Ignore these for the purposes of debug entry value emission. Fixes an assertion failure seen in a stage2 build of clang: Assertion failed: (FD->hasBody() && "Functions must have body here"), function analyzeParametersModification
  730. [AMDGPU] gfx908 dot instruction support Differential Revision: https://reviews.llvm.org/D64431
  731. Attempt to fix bots after r365703
  732. rL365634 adds a unique_ptr<CompilationDatabase> in GobalCompilationDatabase.h:108 but CompilationDatabase is only forward declared. This makes the header not compile standalone, because unique_ptrs expect to have the full-definition of the... Summary: ...template argument. Remove the forward declaration and include the appropriate header instead. Remove CompileCommand too, which is also in the header.
  733. Revert [llvm-objcopy] Allow strip symtab from executables and DSOs This reverts r365193 (git commit 194f16b3548bcb23a7f0fd638778ed72edd18d37) This patch doesn't work with binaries built w/ `--emit-relocs`, e.g. ``` $ echo 'int main() { return 0; }' | clang -Wl,--emit-relocs -x c - -o foo && llvm-objcopy --strip-unneeded foo llvm-objcopy: error: 'foo': not stripping symbol '__gmon_start__' because it is named in a relocation ```
  734. [SDAG] commute setcc operands to match a subtract If we have: R = sub X, Y P = cmp Y, X ...then flipping the operands in the compare instruction can allow using a subtract that sets compare flags. Motivated by diffs in D58875 - not sure if this changes anything there, but this seems like a good thing independent of that. There's a more involved version of this transform already in IR (in instcombine although that seems misplaced to me) - see "swapMayExposeCSEOpportunities()". Differential Revision: https://reviews.llvm.org/D63958
  735. Add IsBytewiseValue unit test Subscribers: llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D63966
  736. NFC: Pass DataLayout into isBytewiseValue Summary: We will need to handle IntToPtr which I will submit in a separate patch as it's not going to be NFC. Reviewers: eugenis, pcc Reviewed By: eugenis Subscribers: hiraditya, cfe-commits, llvm-commits Tags: #clang, #llvm Differential Revision: https://reviews.llvm.org/D63940
  737. NFC: Convert large lambda into method Reviewers: pcc, eugenis Reviewed By: eugenis Subscribers: cfe-commits, lldb-commits Tags: #clang, #lldb Differential Revision: https://reviews.llvm.org/D63854
  738. [TSan] Fix linker error on Linux/AArch64
  739. GodeGen, NFC: Add test to track emitStoresForConstant behavior Reviewers: eugenis, pcc Reviewed By: eugenis Subscribers: cfe-commits Tags: #clang Differential Revision: https://reviews.llvm.org/D64385
  740. [X86] Add patterns with and_flag_nocf for BLSI and TBM instructions. Fixes similar issues to r352306.
  741. [X86] Add a few more TBM and BLSI test cases that show the same issue that r352306 fixed for BLSR.
  742. driver: Don't warn about assembler flags being unused when not assembling clang currently warns when passing flags for the assembler (e.g. -Wa,-mbig-obj) to an invocation that doesn't run the assembler (e.g. -E). At first sight, that makes sense -- the flag really is unused. But many other flags don't have an effect if no assembler runs (e.g. -fno-integrated-as, -ffunction-sections, and many others), and those currently don't warn. So this seems more like a side effect of how CollectArgsForIntegratedAssembler() is implemented than like an intentional feature. Since it's a bit inconvenient when debugging builds and adding -E, always call CollectArgsForIntegratedAssembler() to make sure assembler args always get claimed. Currently, this affects only these flags: -mincremental-linker-compatible, -mimplicit-it= (on ARM), -Wa, -Xassembler It does have the side effect that assembler options now need to be valid even if -E is passed. Previously, `-Wa,-mbig-obj` would error for non-coff output only if the assembler ran, now it always errors. This too makes assembler flags more consistent with all the other flags and seems like a progression. Fixes PR42066. Differential Revision: https://reviews.llvm.org/D64527
  743. [X86] Add BLSR and BLSMSK to isUseDefConvertible. Unfortunately subo formation in CGP prevents obvious ways of testing this. But we already have BLSI in here and the flag behavior is well understood. Might become more useful if we improve PR42571.
  744. [NFC]Fix IR/MC depency issue for function descriptor SDAG implementation Summary: llvm/IR/GlobalValue.h can't be included in MC, that creates a circular dependency between MC and IR libraries. This circular dependency is causing an issue for build system that enforce layering. Author: Xiangling_L Reviewers: sfertile, jasonliu, hubert.reinterpretcast, gribozavr Reviewed By: gribozavr Subscribers: wuzish, nemanjai, hiraditya, kbarton, MaskRay, jsji, llvm-commits Tags: #llvm Differential Revision: https://reviews.llvm.org/D64445
  745. [clang-scan-deps] Dependency directives source minimizer: single quotes are not digit separators after a valid character literal prefix The single quote character can act as a c++ digit separator. However, the minimizer shouldn't treat it as such when it's actually following a valid character literal prefix, like L, U, u, or u8. Differential Revision: https://reviews.llvm.org/D64525
Revision 366567 by Louis Dionne:
[libc++] Fix link error with _LIBCPP_HIDE_FROM_ABI_PER_TU and std::string

Summary:
This is effectively a revert of r344616, which was a partial fix for
PR38964 (compilation of <string> with GCC in C++03 mode). However, that
configuration is explicitly not supported anymore and that partial fix
breaks compilation with Clang when per-TU insulation is provided.

PR42676
rdar://52899715

Reviewers: mclow.lists, EricWF

Subscribers: christof, jkorous, dexonsmith, libcxx-commits

Tags: #libc

Differential Revision: https://reviews.llvm.org/D64941
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/string (diff)libcxx.src/include/string
The file was added/libcxx/trunk/test/libcxx/strings/basic.string/PR42676.sh.cpplibcxx.src/test/libcxx/strings/basic.string/PR42676.sh.cpp
Revision 366566 by sureyeaah:
[Clangd] Fixed SelectionTree bug for macros

Summary:
Fixed SelectionTree bug for macros
- Fixed SelectionTree claimRange for macros and template instantiations
- Fixed SelectionTree unit tests
- Changed a breaking test in TweakTests

Reviewers: sammccall, kadircet

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64329
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/Selection.cpp (diff)clang-tools-extra.src/clangd/Selection.cpp
The file was modified/clang-tools-extra/trunk/clangd/unittests/SelectionTests.cpp (diff)clang-tools-extra.src/clangd/unittests/SelectionTests.cpp
The file was modified/clang-tools-extra/trunk/clangd/unittests/TweakTests.cpp (diff)clang-tools-extra.src/clangd/unittests/TweakTests.cpp
Revision 366562 by ostannard:
Don't update NoTrappingFPMath and FPDenormalMode in resetTargetOptions

We'd like to remove this whole function, because these are properties of
functions, not the target as a whole. These two are easy to remove
because they are only used for emitting ARM build attributes, which
expects them to represent the defaults for the whole module, not just
the last function generated.

This is needed to get correct build attributes when using IPRA on ARM,
because IPRA causes resetTargetOptions to get called before
ARMAsmPrinter::emitAttributes.

Differential revision: https://reviews.llvm.org/D64929
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/TargetMachine.cpp (diff)llvm.src/lib/Target/TargetMachine.cpp
The file was modified/llvm/trunk/test/CodeGen/ARM/build-attributes-fn-attr6.ll (diff)llvm.src/test/CodeGen/ARM/build-attributes-fn-attr6.ll
Revision 366559 by kadircet:
Revert "Revert r366458, r366467 and r366468"

This reverts commit 9c377105da0be7c2c9a3c70035ce674c71b846af.

[clangd][BackgroundIndexLoader] Directly store DependentTU while loading shard

Summary:
We were deferring the population of DependentTU field in LoadedShard
until BackgroundIndexLoader was consumed. This actually triggers a use after
free since the shards FileToTU was pointing at could've been moved while
consuming the Loader.

Reviewers: sammccall

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64980
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/CMakeLists.txt (diff)clang-tools-extra.src/clangd/CMakeLists.txt
The file was modified/clang-tools-extra/trunk/clangd/ClangdServer.cpp (diff)clang-tools-extra.src/clangd/ClangdServer.cpp
The file was modified/clang-tools-extra/trunk/clangd/index/Background.cpp (diff)clang-tools-extra.src/clangd/index/Background.cpp
The file was modified/clang-tools-extra/trunk/clangd/index/Background.h (diff)clang-tools-extra.src/clangd/index/Background.h
The file was added/clang-tools-extra/trunk/clangd/index/BackgroundIndexLoader.cppclang-tools-extra.src/clangd/index/BackgroundIndexLoader.cpp
The file was added/clang-tools-extra/trunk/clangd/index/BackgroundIndexLoader.hclang-tools-extra.src/clangd/index/BackgroundIndexLoader.h
The file was modified/clang-tools-extra/trunk/clangd/index/BackgroundIndexStorage.cpp (diff)clang-tools-extra.src/clangd/index/BackgroundIndexStorage.cpp
The file was modified/clang-tools-extra/trunk/clangd/index/BackgroundRebuild.cpp (diff)clang-tools-extra.src/clangd/index/BackgroundRebuild.cpp
The file was modified/clang-tools-extra/trunk/clangd/index/BackgroundRebuild.h (diff)clang-tools-extra.src/clangd/index/BackgroundRebuild.h
The file was modified/clang-tools-extra/trunk/clangd/test/Inputs/background-index/definition.jsonrpc (diff)clang-tools-extra.src/clangd/test/Inputs/background-index/definition.jsonrpc
The file was modified/clang-tools-extra/trunk/clangd/test/Inputs/background-index/foo.cpp (diff)clang-tools-extra.src/clangd/test/Inputs/background-index/foo.cpp
The file was removed/clang-tools-extra/trunk/clangd/test/Inputs/background-index/foo.hclang-tools-extra.src/clangd/test/Inputs/background-index/foo.h
The file was added/clang-tools-extra/trunk/clangd/test/Inputs/background-index/sub_dirclang-tools-extra.src/clangd/test/Inputs/background-index/sub_dir
The file was added/clang-tools-extra/trunk/clangd/test/Inputs/background-index/sub_dir/compile_flags.txtclang-tools-extra.src/clangd/test/Inputs/background-index/sub_dir/compile_flags.txt
The file was added/clang-tools-extra/trunk/clangd/test/Inputs/background-index/sub_dir/foo.hclang-tools-extra.src/clangd/test/Inputs/background-index/sub_dir/foo.h
The file was modified/clang-tools-extra/trunk/clangd/test/background-index.test (diff)clang-tools-extra.src/clangd/test/background-index.test
The file was modified/clang-tools-extra/trunk/clangd/unittests/BackgroundIndexTests.cpp (diff)clang-tools-extra.src/clangd/unittests/BackgroundIndexTests.cpp
Revision 366558 by grimar:
[llvm-readelf] - A fix for: "--hash-symbols asserts for 64-bit ELFs"

Fixes https://bugs.llvm.org/show_bug.cgi?id=42622.
(--hash-symbols switch is currently broken for 64-bit ELF files, due to r352630.)

Differential revision: https://reviews.llvm.org/D64788
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-readobj/elf-hash-symbols.test (diff)llvm.src/test/tools/llvm-readobj/elf-hash-symbols.test
The file was modified/llvm/trunk/tools/llvm-readobj/ELFDumper.cpp (diff)llvm.src/tools/llvm-readobj/ELFDumper.cpp
Revision 366557 by ostannard:
[IPRA] Don't rely on non-exact function definitions

If a function definition is not exact, then the linker could select a
differently-compiled version of it, which could use different registers.

https://reviews.llvm.org/D64909
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/RegUsageInfoPropagate.cpp (diff)llvm.src/lib/CodeGen/RegUsageInfoPropagate.cpp
The file was added/llvm/trunk/test/CodeGen/ARM/ipra-exact-definition.llllvm.src/test/CodeGen/ARM/ipra-exact-definition.ll
Revision 366555 by miyuki:
[ARM] Add <saturate> operand to SQRSHRL and UQRSHLL

Summary:
According to the new Armv8-M specification
https://static.docs.arm.com/ddi0553/bh/DDI0553B_h_armv8m_arm.pdf the
instructions SQRSHRL and UQRSHLL now have an additional immediate
operand <saturate>. The new assembly syntax is:

SQRSHRL<c> RdaLo, RdaHi, #<saturate>, Rm
UQRSHLL<c> RdaLo, RdaHi, #<saturate>, Rm

where <saturate> can be either 64 (the existing behavior) or 48, in
that case the result is saturated to 48 bits.

The new operand is encoded as follows:
  #64 Encoded as sat = 0
  #48 Encoded as sat = 1
sat is bit 7 of the instruction bit pattern.

This patch adds a new assembler operand class MveSaturateOperand which
implements parsing and encoding. Decoding is implemented in
DecodeMVEOverlappingLongShift.

Reviewers: ostannard, simon_tatham, t.p.northover, samparker, dmgreen, SjoerdMeijer

Reviewed By: simon_tatham

Subscribers: javed.absar, kristof.beyls, hiraditya, pbarrio, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64810
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrFormats.td (diff)llvm.src/lib/Target/ARM/ARMInstrFormats.td
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrMVE.td (diff)llvm.src/lib/Target/ARM/ARMInstrMVE.td
The file was modified/llvm/trunk/lib/Target/ARM/AsmParser/ARMAsmParser.cpp (diff)llvm.src/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
The file was modified/llvm/trunk/lib/Target/ARM/Disassembler/ARMDisassembler.cpp (diff)llvm.src/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
The file was modified/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpp (diff)llvm.src/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpp
The file was modified/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.h (diff)llvm.src/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.h
The file was modified/llvm/trunk/test/MC/ARM/mve-scalar-shift.s (diff)llvm.src/test/MC/ARM/mve-scalar-shift.s
The file was modified/llvm/trunk/test/MC/Disassembler/ARM/mve-scalar-shift.txt (diff)llvm.src/test/MC/Disassembler/ARM/mve-scalar-shift.txt
Revision 366551 by Azharuddin Mohammed:
Revert r366458, r366467 and r366468

r366458 is causing test failures. r366467 and r366468 had to be reverted as
they were casuing conflict while reverting r366458.

r366468 [clangd] Remove dead code from BackgroundIndex
r366467 [clangd] BackgroundIndex stores shards to the closest project
r366458 [clangd] Refactor background-index shard loading
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/CMakeLists.txt (diff)clang-tools-extra.src/clangd/CMakeLists.txt
The file was modified/clang-tools-extra/trunk/clangd/ClangdServer.cpp (diff)clang-tools-extra.src/clangd/ClangdServer.cpp
The file was modified/clang-tools-extra/trunk/clangd/index/Background.cpp (diff)clang-tools-extra.src/clangd/index/Background.cpp
The file was modified/clang-tools-extra/trunk/clangd/index/Background.h (diff)clang-tools-extra.src/clangd/index/Background.h
The file was removed/clang-tools-extra/trunk/clangd/index/BackgroundIndexLoader.cppclang-tools-extra.src/clangd/index/BackgroundIndexLoader.cpp
The file was removed/clang-tools-extra/trunk/clangd/index/BackgroundIndexLoader.hclang-tools-extra.src/clangd/index/BackgroundIndexLoader.h
The file was modified/clang-tools-extra/trunk/clangd/index/BackgroundIndexStorage.cpp (diff)clang-tools-extra.src/clangd/index/BackgroundIndexStorage.cpp
The file was modified/clang-tools-extra/trunk/clangd/index/BackgroundRebuild.cpp (diff)clang-tools-extra.src/clangd/index/BackgroundRebuild.cpp
The file was modified/clang-tools-extra/trunk/clangd/index/BackgroundRebuild.h (diff)clang-tools-extra.src/clangd/index/BackgroundRebuild.h
The file was modified/clang-tools-extra/trunk/clangd/test/Inputs/background-index/definition.jsonrpc (diff)clang-tools-extra.src/clangd/test/Inputs/background-index/definition.jsonrpc
The file was modified/clang-tools-extra/trunk/clangd/test/Inputs/background-index/foo.cpp (diff)clang-tools-extra.src/clangd/test/Inputs/background-index/foo.cpp
The file was added/clang-tools-extra/trunk/clangd/test/Inputs/background-index/foo.hclang-tools-extra.src/clangd/test/Inputs/background-index/foo.h
The file was removed/clang-tools-extra/trunk/clangd/test/Inputs/background-index/sub_dirclang-tools-extra.src/clangd/test/Inputs/background-index/sub_dir
The file was modified/clang-tools-extra/trunk/clangd/test/background-index.test (diff)clang-tools-extra.src/clangd/test/background-index.test
The file was modified/clang-tools-extra/trunk/clangd/unittests/BackgroundIndexTests.cpp (diff)clang-tools-extra.src/clangd/unittests/BackgroundIndexTests.cpp
Revision 366546 by svenvh:
[OpenCL] Define CLK_NULL_EVENT without cast

Defining CLK_NULL_EVENT with a `(void*)` cast has the (unintended?)
side-effect that the address space will be fixed (as generic in OpenCL
2.0 mode).  The consequence is that any target specific address space
for the clk_event_t type will not be applied.

It is not clear why the void pointer cast was needed in the first
place, and it seems we can do without it.

Differential Revision: https://reviews.llvm.org/D63876
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Headers/opencl-c-base.h (diff)clang.src/lib/Headers/opencl-c-base.h
The file was modified/cfe/trunk/test/SemaOpenCL/clk_event_t.cl (diff)clang.src/test/SemaOpenCL/clk_event_t.cl
Revision 366545 by kadircet:
[clangd] Handle windows line endings in QueryDriver

Summary:
The previous patch did not fix the end mark. D64789
fixes second case of https://github.com/clangd/clangd/issues/93

Patch by @lh123 !

Reviewers: sammccall, kadircet

Reviewed By: kadircet

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

Tags: #clang-tools-extra, #clang

Differential Revision: https://reviews.llvm.org/D64970
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/QueryDriverDatabase.cpp (diff)clang-tools-extra.src/clangd/QueryDriverDatabase.cpp
The file was modified/clang-tools-extra/trunk/clangd/test/system-include-extractor.test (diff)clang-tools-extra.src/clangd/test/system-include-extractor.test
Revision 366544 by hubert.reinterpretcast:
[sanitizers] Use covering ObjectFormatType switches

Summary:
This patch removes the `default` case from some switches on
`llvm::Triple::ObjectFormatType`, and cases for the missing enumerators
(`UnknownObjectFormat`, `Wasm`, and `XCOFF`) are then added.

For `UnknownObjectFormat`, the effect of the action for the `default`
case is maintained; otherwise, where `llvm_unreachable` is called,
`report_fatal_error` is used instead.

Where the `default` case returns a default value, `report_fatal_error`
is used for XCOFF as a placeholder. For `Wasm`, the effect of the action
for the `default` case in maintained.

The code is structured to avoid strongly implying that the `Wasm` case
is present for any reason other than to make the switch cover all
`ObjectFormatType` enumerator values.

Reviewers: sfertile, jasonliu, daltenty

Reviewed By: sfertile

Subscribers: hiraditya, aheejin, sunfish, llvm-commits, cfe-commits

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D64222
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 modified/llvm/trunk/lib/Transforms/Instrumentation/AddressSanitizer.cpp (diff)llvm.src/lib/Transforms/Instrumentation/AddressSanitizer.cpp
Revision 366543 by foad:
[AMDGPU] Simplify the exclusive scan used for optimized atomics

Summary:
Change the scan algorithm to use only power-of-two shifts (1, 2, 4, 8,
16, 32) instead of starting off shifting by 1, 2 and 3 and then doing
a 3-way ADD, because:

1. It simplifies the compiler a little.
2. It minimizes vgpr pressure because each instruction is now of the
   form vn = vn + vn << c.
3. It is more friendly to the DPP combiner, which currently can't
   combine into an ADD3 instruction.

Because of #2 and #3 the end result is improved from this:

  v_add_u32_dpp v4, v3, v3  row_shr:1 row_mask:0xf bank_mask:0xf bound_ctrl:0
  v_mov_b32_dpp v5, v3  row_shr:2 row_mask:0xf bank_mask:0xf
  v_mov_b32_dpp v1, v3  row_shr:3 row_mask:0xf bank_mask:0xf
  v_add3_u32 v1, v4, v5, v1
  s_nop 1
  v_add_u32_dpp v1, v1, v1  row_shr:4 row_mask:0xf bank_mask:0xe
  s_nop 1
  v_add_u32_dpp v1, v1, v1  row_shr:8 row_mask:0xf bank_mask:0xc
  s_nop 1
  v_add_u32_dpp v1, v1, v1  row_bcast:15 row_mask:0xa bank_mask:0xf
  s_nop 1
  v_add_u32_dpp v1, v1, v1  row_bcast:31 row_mask:0xc bank_mask:0xf

To this:

  v_add_u32_dpp v1, v1, v1  row_shr:1 row_mask:0xf bank_mask:0xf bound_ctrl:0
  s_nop 1
  v_add_u32_dpp v1, v1, v1  row_shr:2 row_mask:0xf bank_mask:0xf bound_ctrl:0
  s_nop 1
  v_add_u32_dpp v1, v1, v1  row_shr:4 row_mask:0xf bank_mask:0xe
  s_nop 1
  v_add_u32_dpp v1, v1, v1  row_shr:8 row_mask:0xf bank_mask:0xc
  s_nop 1
  v_add_u32_dpp v1, v1, v1  row_bcast:15 row_mask:0xa bank_mask:0xf
  s_nop 1
  v_add_u32_dpp v1, v1, v1  row_bcast:31 row_mask:0xc bank_mask:0xf

I.e. two fewer computational instructions, one extra nop where we could
schedule something else.

Reviewers: arsenm, sheredom, critson, rampitec, vpykhtin

Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64411
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/atomic_optimizations_buffer.ll (diff)llvm.src/test/CodeGen/AMDGPU/atomic_optimizations_buffer.ll
Revision 366542 by skatkov:
[Loop Peeling] Enable peeling of multiple exits by default.

Enable loop peeling with multiple exits where all non-latch exits
ends up with deopt by default.

Reviewers: reames, fhahn
Reviewed By: reames
Subscribers: xbolva00, hiraditya, zzheng, llvm-commits
Differential Revision: https://reviews.llvm.org/D64619
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Utils/LoopUnrollPeel.cpp (diff)llvm.src/lib/Transforms/Utils/LoopUnrollPeel.cpp
Revision 366541 by hokein:
[clangd] cleanup: unify the implemenation of checking a location is inside main file.

Summary: We have variant implementations in the codebase, this patch unifies them.

Reviewers: ilya-biryukov, kadircet

Subscribers: MaskRay, jkorous, arphaman, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64915
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/ClangdUnit.cpp (diff)clang-tools-extra.src/clangd/ClangdUnit.cpp
The file was modified/clang-tools-extra/trunk/clangd/Diagnostics.cpp (diff)clang-tools-extra.src/clangd/Diagnostics.cpp
The file was modified/clang-tools-extra/trunk/clangd/Headers.cpp (diff)clang-tools-extra.src/clangd/Headers.cpp
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/clangd/Quality.cpp (diff)clang-tools-extra.src/clangd/Quality.cpp
The file was modified/clang-tools-extra/trunk/clangd/SourceCode.cpp (diff)clang-tools-extra.src/clangd/SourceCode.cpp
The file was modified/clang-tools-extra/trunk/clangd/SourceCode.h (diff)clang-tools-extra.src/clangd/SourceCode.h
The file was modified/clang-tools-extra/trunk/clangd/XRefs.cpp (diff)clang-tools-extra.src/clangd/XRefs.cpp
The file was modified/clang-tools-extra/trunk/clangd/index/SymbolCollector.cpp (diff)clang-tools-extra.src/clangd/index/SymbolCollector.cpp
The file was modified/clang-tools-extra/trunk/clangd/refactor/Rename.cpp (diff)clang-tools-extra.src/clangd/refactor/Rename.cpp
The file was modified/clang-tools-extra/trunk/clangd/unittests/SourceCodeTests.cpp (diff)clang-tools-extra.src/clangd/unittests/SourceCodeTests.cpp
The file was modified/clang-tools-extra/trunk/clangd/unittests/SymbolCollectorTests.cpp (diff)clang-tools-extra.src/clangd/unittests/SymbolCollectorTests.cpp
Revision 366540 by lebedevri:
[InstCombine] Dropping redundant masking before left-shift [5/5] (PR42563)

Summary:
If we have some pattern that leaves only some low bits set, and then performs
left-shift of those bits, if none of the bits that are left after the final
shift are modified by the mask, we can omit the mask.

There are many variants to this pattern:
f. `((x << MaskShAmt) a>> MaskShAmt) << ShiftShAmt`
All these patterns can be simplified to just:
`x << ShiftShAmt`
iff:
f. `(ShiftShAmt-MaskShAmt) s>= 0` (i.e. `ShiftShAmt u>= MaskShAmt`)

Normally, the inner pattern is sign-extend,
but for our purposes it's no different to other patterns:

alive proofs:
f: https://rise4fun.com/Alive/7U3

For now let's start with patterns where both shift amounts are variable,
with trivial constant "offset" between them, since i believe this is
both simplest to handle and i think this is most common.
But again, there are likely other variants where we could use
ValueTracking/ConstantRange to handle more cases.

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

Differential Revision: https://reviews.llvm.org/D64524
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineShifts.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstCombineShifts.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/redundant-left-shift-input-masking-variant-f.ll (diff)llvm.src/test/Transforms/InstCombine/redundant-left-shift-input-masking-variant-f.ll
Revision 366539 by lebedevri:
[InstCombine] Dropping redundant masking before left-shift [4/5] (PR42563)

Summary:
If we have some pattern that leaves only some low bits set, and then performs
left-shift of those bits, if none of the bits that are left after the final
shift are modified by the mask, we can omit the mask.

There are many variants to this pattern:
e. `((x << MaskShAmt) l>> MaskShAmt) << ShiftShAmt`
All these patterns can be simplified to just:
`x << ShiftShAmt`
iff:
e. `(ShiftShAmt-MaskShAmt) s>= 0` (i.e. `ShiftShAmt u>= MaskShAmt`)

alive proofs:
e: https://rise4fun.com/Alive/0FT

For now let's start with patterns where both shift amounts are variable,
with trivial constant "offset" between them, since i believe this is
both simplest to handle and i think this is most common.
But again, there are likely other variants where we could use
ValueTracking/ConstantRange to handle more cases.

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

Differential Revision: https://reviews.llvm.org/D64521
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineShifts.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstCombineShifts.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/redundant-left-shift-input-masking-variant-e.ll (diff)llvm.src/test/Transforms/InstCombine/redundant-left-shift-input-masking-variant-e.ll
Revision 366538 by lebedevri:
[InstCombine] Dropping redundant masking before left-shift [3/5] (PR42563)

Summary:
If we have some pattern that leaves only some low bits set, and then performs
left-shift of those bits, if none of the bits that are left after the final
shift are modified by the mask, we can omit the mask.

There are many variants to this pattern:
d. `(x & ((-1 << MaskShAmt) >> MaskShAmt)) << ShiftShAmt`
All these patterns can be simplified to just:
`x << ShiftShAmt`
iff:
d. `(ShiftShAmt-MaskShAmt) s>= 0` (i.e. `ShiftShAmt u>= MaskShAmt`)

alive proofs:
d: https://rise4fun.com/Alive/I5Y

For now let's start with patterns where both shift amounts are variable,
with trivial constant "offset" between them, since i believe this is
both simplest to handle and i think this is most common.
But again, there are likely other variants where we could use
ValueTracking/ConstantRange to handle more cases.

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

Differential Revision: https://reviews.llvm.org/D64519
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineShifts.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstCombineShifts.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/redundant-left-shift-input-masking-variant-d.ll (diff)llvm.src/test/Transforms/InstCombine/redundant-left-shift-input-masking-variant-d.ll
Revision 366537 by lebedevri:
[InstCombine] Dropping redundant masking before left-shift [2/5] (PR42563)

Summary:
If we have some pattern that leaves only some low bits set, and then performs
left-shift of those bits, if none of the bits that are left after the final
shift are modified by the mask, we can omit the mask.

There are many variants to this pattern:
c. `(x & (-1 >> MaskShAmt)) << ShiftShAmt`
All these patterns can be simplified to just:
`x << ShiftShAmt`
iff:
c. `(ShiftShAmt-MaskShAmt) s>= 0` (i.e. `ShiftShAmt u>= MaskShAmt`)

alive proofs:
c: https://rise4fun.com/Alive/RgJh

For now let's start with patterns where both shift amounts are variable,
with trivial constant "offset" between them, since i believe this is
both simplest to handle and i think this is most common.
But again, there are likely other variants where we could use
ValueTracking/ConstantRange to handle more cases.

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

Differential Revision: https://reviews.llvm.org/D64517
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineShifts.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstCombineShifts.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/redundant-left-shift-input-masking-variant-c.ll (diff)llvm.src/test/Transforms/InstCombine/redundant-left-shift-input-masking-variant-c.ll
Revision 366536 by lebedevri:
[InstCombine] Dropping redundant masking before left-shift [1/5] (PR42563)

Summary:
If we have some pattern that leaves only some low bits set, and then performs
left-shift of those bits, if none of the bits that are left after the final
shift are modified by the mask, we can omit the mask.

There are many variants to this pattern:
b. `(x & (~(-1 << maskNbits))) << shiftNbits`
All these patterns can be simplified to just:
`x << ShiftShAmt`
iff:
b. `(MaskShAmt+ShiftShAmt) u>= bitwidth(x)`

alive proof:
b: https://rise4fun.com/Alive/y8M

For now let's start with patterns where both shift amounts are variable,
with trivial constant "offset" between them, since i believe this is
both simplest to handle and i think this is most common.
But again, there are likely other variants where we could use
ValueTracking/ConstantRange to handle more cases.

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

Differential Revision: https://reviews.llvm.org/D64514
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineShifts.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstCombineShifts.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/redundant-left-shift-input-masking-variant-b.ll (diff)llvm.src/test/Transforms/InstCombine/redundant-left-shift-input-masking-variant-b.ll
Revision 366535 by lebedevri:
[InstCombine] Dropping redundant masking before left-shift [0/5] (PR42563)

Summary:
If we have some pattern that leaves only some low bits set, and then performs
left-shift of those bits, if none of the bits that are left after the final
shift are modified by the mask, we can omit the mask.

There are many variants to this pattern:
a. `(x & ((1 << MaskShAmt) - 1)) << ShiftShAmt`
All these patterns can be simplified to just:
`x << ShiftShAmt`
iff:
a. `(MaskShAmt+ShiftShAmt) u>= bitwidth(x)`

alive proof:
a: https://rise4fun.com/Alive/wi9

Indeed, not all of these patterns are canonical.
But since this fold will only produce a single instruction
i'm really interested in handling even uncanonical patterns,
since i have this general kind of pattern in hotpaths,
and it is not totally outlandish for bit-twiddling code.

For now let's start with patterns where both shift amounts are variable,
with trivial constant "offset" between them, since i believe this is
both simplest to handle and i think this is most common.
But again, there are likely other variants where we could use
ValueTracking/ConstantRange to handle more cases.

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

Reviewers: spatel, nikic, huihuiz, xbolva00

Reviewed By: xbolva00

Subscribers: efriedma, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64512
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/InstCombine/InstCombineShifts.cpp (diff)llvm.src/lib/Transforms/InstCombine/InstCombineShifts.cpp
The file was modified/llvm/trunk/test/Transforms/InstCombine/redundant-left-shift-input-masking-variant-a.ll (diff)llvm.src/test/Transforms/InstCombine/redundant-left-shift-input-masking-variant-a.ll
Revision 366534 by maskray:
[ELF][test] Fix aarch64-condb-reloc.s
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/test/ELF/aarch64-condb-reloc.s (diff)lld.src/test/ELF/aarch64-condb-reloc.s
Revision 366533 by hubert.reinterpretcast:
[NFC] Fix an indentation issue in llvm/Support/TargetRegistry.h
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Support/TargetRegistry.h (diff)llvm.src/include/llvm/Support/TargetRegistry.h
Revision 366532 by maskray:
[ELF][AArch64] Improve some aarch64-*.s tests

* Delete aarch64-tls-static.s: it is covered by aarch64-tlsdesc.c
* Add --no-show-raw-insn to llvm-objdump -d tests
* When linking an executable with %t.so, the path %t.so will be recorded in the DT_NEEDED entry if %t.so doesn't have DT_SONAME. The DT_NEEDED has varying lengths on different systems.
  Add -soname to make tests more robust. This issue will become outstanding if we allow overlapping PT_LOAD (D64930).
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/test/ELF/aarch64-condb-reloc.s (diff)lld.src/test/ELF/aarch64-condb-reloc.s
The file was modified/lld/trunk/test/ELF/aarch64-copy.s (diff)lld.src/test/ELF/aarch64-copy.s
The file was modified/lld/trunk/test/ELF/aarch64-gnu-ifunc-plt.s (diff)lld.src/test/ELF/aarch64-gnu-ifunc-plt.s
The file was modified/lld/trunk/test/ELF/aarch64-gnu-ifunc2.s (diff)lld.src/test/ELF/aarch64-gnu-ifunc2.s
The file was modified/lld/trunk/test/ELF/aarch64-jump26-thunk.s (diff)lld.src/test/ELF/aarch64-jump26-thunk.s
The file was modified/lld/trunk/test/ELF/aarch64-nopic-plt.s (diff)lld.src/test/ELF/aarch64-nopic-plt.s
The file was modified/lld/trunk/test/ELF/aarch64-tls-gdie.s (diff)lld.src/test/ELF/aarch64-tls-gdie.s
The file was modified/lld/trunk/test/ELF/aarch64-tls-gdle.s (diff)lld.src/test/ELF/aarch64-tls-gdle.s
The file was modified/lld/trunk/test/ELF/aarch64-tls-ie.s (diff)lld.src/test/ELF/aarch64-tls-ie.s
The file was removed/lld/trunk/test/ELF/aarch64-tls-static.slld.src/test/ELF/aarch64-tls-static.s
The file was modified/lld/trunk/test/ELF/aarch64-tlsdesc.s (diff)lld.src/test/ELF/aarch64-tlsdesc.s
The file was modified/lld/trunk/test/ELF/aarch64-tstbr14-reloc.s (diff)lld.src/test/ELF/aarch64-tstbr14-reloc.s
The file was modified/lld/trunk/test/ELF/aarch64-undefined-weak.s (diff)lld.src/test/ELF/aarch64-undefined-weak.s
Revision 366531 by hsiangkai:
[DebugInfo] Some fields do not need relocations even relax is enabled.

In debug frame information, some fields, e.g., Length in CIE/FDE and
Offset in FDE are attributes to describe the structure of CIE/FDE. They
are not related to the relaxed code. However, these attributes are
symbol differences. So, in current design, these attributes will be
filled as zero and LLVM generates relocations for them.

We only need to generate relocations for symbols in executable sections.
So, if the symbols are not located in executable sections, we still
evaluate their values under relaxation.

Differential Revision: https://reviews.llvm.org/D61584
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/MC/MCExpr.cpp (diff)llvm.src/lib/MC/MCExpr.cpp
The file was modified/llvm/trunk/test/DebugInfo/RISCV/dwarf-riscv-relocs.ll (diff)llvm.src/test/DebugInfo/RISCV/dwarf-riscv-relocs.ll
The file was modified/llvm/trunk/test/DebugInfo/RISCV/relax-debug-frame.ll (diff)llvm.src/test/DebugInfo/RISCV/relax-debug-frame.ll
The file was modified/llvm/trunk/test/MC/RISCV/fde-reloc.s (diff)llvm.src/test/MC/RISCV/fde-reloc.s
Revision 366530 by lattner:
unbreak links
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/tutorial/LangImpl01.rst (diff)llvm.src/docs/tutorial/LangImpl01.rst
The file was modified/llvm/trunk/docs/tutorial/LangImpl02.rst (diff)llvm.src/docs/tutorial/LangImpl02.rst
The file was modified/llvm/trunk/docs/tutorial/LangImpl03.rst (diff)llvm.src/docs/tutorial/LangImpl03.rst
The file was modified/llvm/trunk/docs/tutorial/LangImpl04.rst (diff)llvm.src/docs/tutorial/LangImpl04.rst
The file was modified/llvm/trunk/docs/tutorial/LangImpl05.rst (diff)llvm.src/docs/tutorial/LangImpl05.rst
The file was modified/llvm/trunk/docs/tutorial/LangImpl06.rst (diff)llvm.src/docs/tutorial/LangImpl06.rst
The file was modified/llvm/trunk/docs/tutorial/LangImpl07.rst (diff)llvm.src/docs/tutorial/LangImpl07.rst
The file was modified/llvm/trunk/docs/tutorial/LangImpl08.rst (diff)llvm.src/docs/tutorial/LangImpl08.rst
The file was modified/llvm/trunk/docs/tutorial/LangImpl09.rst (diff)llvm.src/docs/tutorial/LangImpl09.rst
The file was modified/llvm/trunk/docs/tutorial/LangImpl10.rst (diff)llvm.src/docs/tutorial/LangImpl10.rst
The file was modified/llvm/trunk/docs/tutorial/index.rst (diff)llvm.src/docs/tutorial/index.rst
Revision 366529 by lattner:
replace the old kaleidoscope tutorial files with orphaned pages that forward to the new copy.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/tutorial/LangImpl01.rst (diff)llvm.src/docs/tutorial/LangImpl01.rst
The file was modified/llvm/trunk/docs/tutorial/LangImpl02.rst (diff)llvm.src/docs/tutorial/LangImpl02.rst
The file was modified/llvm/trunk/docs/tutorial/LangImpl03.rst (diff)llvm.src/docs/tutorial/LangImpl03.rst
The file was modified/llvm/trunk/docs/tutorial/LangImpl04.rst (diff)llvm.src/docs/tutorial/LangImpl04.rst
The file was removed/llvm/trunk/docs/tutorial/LangImpl05-cfg.pngllvm.src/docs/tutorial/LangImpl05-cfg.png
The file was modified/llvm/trunk/docs/tutorial/LangImpl05.rst (diff)llvm.src/docs/tutorial/LangImpl05.rst
The file was modified/llvm/trunk/docs/tutorial/LangImpl06.rst (diff)llvm.src/docs/tutorial/LangImpl06.rst
The file was modified/llvm/trunk/docs/tutorial/LangImpl07.rst (diff)llvm.src/docs/tutorial/LangImpl07.rst
The file was modified/llvm/trunk/docs/tutorial/LangImpl08.rst (diff)llvm.src/docs/tutorial/LangImpl08.rst
The file was modified/llvm/trunk/docs/tutorial/LangImpl09.rst (diff)llvm.src/docs/tutorial/LangImpl09.rst
The file was modified/llvm/trunk/docs/tutorial/LangImpl10.rst (diff)llvm.src/docs/tutorial/LangImpl10.rst
The file was modified/llvm/trunk/docs/tutorial/MyFirstLanguageFrontend/index.rst (diff)llvm.src/docs/tutorial/MyFirstLanguageFrontend/index.rst
The file was modified/llvm/trunk/docs/tutorial/index.rst (diff)llvm.src/docs/tutorial/index.rst
Revision 366528 by lattner:
Point to the dusted off version of the kaleidoscope tutorial.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/tutorial/MyFirstLanguageFrontend/LangImpl08.rst (diff)llvm.src/docs/tutorial/MyFirstLanguageFrontend/LangImpl08.rst
The file was modified/llvm/trunk/docs/tutorial/index.rst (diff)llvm.src/docs/tutorial/index.rst
Revision 366527 by abrachet:
[test] [llvm-objcopy] Fix broken test case

Summary: The test case added in D62718 did not work unless the user was root because write bits were not set for the output file. This change uses only permissions with user write (0200) to ensure tests pass regardless of the users permissions.

Reviewers: jhenderson, rupprecht, MaskRay, espindola, alexshap

Reviewed By: MaskRay

Subscribers: emaste, arichardson, jakehehrlich, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64302
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-objcopy/ELF/respect-umask.test (diff)llvm.src/test/tools/llvm-objcopy/ELF/respect-umask.test
Revision 366526 by zhangkang:
[NFC][PowerPC] Modify the test case add_cmp.ll
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/PowerPC/add_cmp.ll (diff)llvm.src/test/CodeGen/PowerPC/add_cmp.ll
Revision 366525 by kongyi:
[libFuzzer] Set Android specific ALL_FUZZER_SUPPORTED_ARCH

Build libFuzzer for all Android supported architectures.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/cmake/config-ix.cmake (diff)compiler-rt.src/cmake/config-ix.cmake
Revision 366524 by hsiangkai:
[DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame.

It is necessary to generate fixups in .debug_frame or .eh_frame as
relaxation is enabled due to the address delta may be changed after
relaxation.

There is an opcode with 6-bits data in debug frame encoding. So, we
also need 6-bits fixup types.

Differential Revision: https://reviews.llvm.org/D58335
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h (diff)llvm.src/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h
The file was modified/llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFObject.h (diff)llvm.src/include/llvm/DebugInfo/DWARF/DWARFObject.h
The file was modified/llvm/trunk/include/llvm/MC/MCDwarf.h (diff)llvm.src/include/llvm/MC/MCDwarf.h
The file was modified/llvm/trunk/include/llvm/MC/MCFixup.h (diff)llvm.src/include/llvm/MC/MCFixup.h
The file was modified/llvm/trunk/include/llvm/MC/MCFragment.h (diff)llvm.src/include/llvm/MC/MCFragment.h
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cpp (diff)llvm.src/lib/DebugInfo/DWARF/DWARFContext.cpp
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp (diff)llvm.src/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp
The file was modified/llvm/trunk/lib/MC/MCAsmBackend.cpp (diff)llvm.src/lib/MC/MCAsmBackend.cpp
The file was modified/llvm/trunk/lib/MC/MCAssembler.cpp (diff)llvm.src/lib/MC/MCAssembler.cpp
The file was modified/llvm/trunk/lib/MC/MCDwarf.cpp (diff)llvm.src/lib/MC/MCDwarf.cpp
The file was modified/llvm/trunk/lib/Object/RelocationResolver.cpp (diff)llvm.src/lib/Object/RelocationResolver.cpp
The file was modified/llvm/trunk/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp (diff)llvm.src/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
The file was modified/llvm/trunk/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp (diff)llvm.src/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
The file was modified/llvm/trunk/test/CodeGen/RISCV/fixups-relax-diff.ll (diff)llvm.src/test/CodeGen/RISCV/fixups-relax-diff.ll
The file was added/llvm/trunk/test/DebugInfo/RISCV/relax-debug-frame.llllvm.src/test/DebugInfo/RISCV/relax-debug-frame.ll
The file was modified/llvm/trunk/tools/dsymutil/DwarfLinker.cpp (diff)llvm.src/tools/dsymutil/DwarfLinker.cpp
Revision 366523 by void:
Use the MachineBasicBlock symbol for a callbr target

Summary:
Inline asm doesn't use labels when compiled as an object file. Therefore, we
shouldn't create one for the (potential) callbr destination. Instead, use the
symbol for the MachineBasicBlock.

Reviewers: nickdesaulniers, craig.topper

Reviewed By: nickdesaulniers

Subscribers: xbolva00, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64888
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp (diff)llvm.src/lib/CodeGen/AsmPrinter/AsmPrinterInlineAsm.cpp
The file was added/llvm/trunk/test/CodeGen/X86/callbr-asm-obj-file.llllvm.src/test/CodeGen/X86/callbr-asm-obj-file.ll
The file was modified/llvm/trunk/test/CodeGen/X86/callbr-asm.ll (diff)llvm.src/test/CodeGen/X86/callbr-asm.ll
Revision 366518 by sbc:
Fix formatting of inline argument comments. NFC.

Also, remove the final arg from ItaniumCXXABI in the PNaCl case since
its not needed.

Differential Revision: https://reviews.llvm.org/D64955
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/ItaniumCXXABI.cpp (diff)clang.src/lib/CodeGen/ItaniumCXXABI.cpp
Revision 366516 by aemerson:
[GlobalISel] Translate calls to memcpy et al to G_INTRINSIC_W_SIDE_EFFECTs and legalize later.

I plan on adding memcpy optimizations in the GlobalISel pipeline, but we can't
do that unless we delay lowering to actual function calls. This patch changes
the translator to generate G_INTRINSIC_W_SIDE_EFFECTS for these functions, and
then have each target specify that using the new custom legalizer for intrinsics
hook that they want it expanded it a libcall.

Differential Revision: https://reviews.llvm.org/D64895
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/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h (diff)llvm.src/include/llvm/CodeGen/GlobalISel/LegalizerHelper.h
The file was modified/llvm/trunk/include/llvm/CodeGen/MachineInstr.h (diff)llvm.src/include/llvm/CodeGen/MachineInstr.h
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/IRTranslator.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/IRTranslator.cpp
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64LegalizerInfo.cpp (diff)llvm.src/lib/Target/AArch64/AArch64LegalizerInfo.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64LegalizerInfo.h (diff)llvm.src/lib/Target/AArch64/AArch64LegalizerInfo.h
The file was modified/llvm/trunk/lib/Target/Mips/MipsLegalizerInfo.cpp (diff)llvm.src/lib/Target/Mips/MipsLegalizerInfo.cpp
The file was modified/llvm/trunk/lib/Target/Mips/MipsLegalizerInfo.h (diff)llvm.src/lib/Target/Mips/MipsLegalizerInfo.h
The file was modified/llvm/trunk/lib/Target/X86/X86LegalizerInfo.cpp (diff)llvm.src/lib/Target/X86/X86LegalizerInfo.cpp
The file was modified/llvm/trunk/lib/Target/X86/X86LegalizerInfo.h (diff)llvm.src/lib/Target/X86/X86LegalizerInfo.h
The file was modified/llvm/trunk/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll (diff)llvm.src/test/CodeGen/AArch64/GlobalISel/arm64-irtranslator.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/GlobalISel/legalize-memcpy-et-al.mirllvm.src/test/CodeGen/AArch64/GlobalISel/legalize-memcpy-et-al.mir
The file was modified/llvm/trunk/test/CodeGen/Mips/GlobalISel/irtranslator/call.ll (diff)llvm.src/test/CodeGen/Mips/GlobalISel/irtranslator/call.ll
The file was modified/llvm/trunk/test/CodeGen/X86/GlobalISel/x86_64-irtranslator-struct-return.ll (diff)llvm.src/test/CodeGen/X86/GlobalISel/x86_64-irtranslator-struct-return.ll
Revision 366515 by lanza:
[cmake] Fix typo where a varible was checked for Apple instead of Darwin

Subscribers: mgorny, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64965
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/cmake/modules/AddLLVM.cmake (diff)llvm.src/cmake/modules/AddLLVM.cmake
Revision 366514 by lanza:
[cmake] Convert the NATIVE llvm build process to be project agnostic

lldb recently added a tablegen tool. In order to properly cross compile
lldb standalone there needs to be a mechanism to generate the native
lldb build, analgous to what's done for the NATIVE llvm build. Thus,
we can simply modify this setup to allow for any project to be used.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/CMakeLists.txt (diff)llvm.src/CMakeLists.txt
The file was modified/llvm/trunk/cmake/modules/CrossCompile.cmake (diff)llvm.src/cmake/modules/CrossCompile.cmake
Revision 366512 by smeenai:
Reapply [llvm-lipo] Implement -create (with hardcoded alignments)

This reapplies r366142 with a fix for the failing Windows test.

Original commit message:

Creates universal binary output file from input files. Currently uses
hard coded value for alignment.  Want to get the create functionality
approved before implementing the alignment function.

Patch by Anusha Basana <anusha.basana@gmail.com>

Differential Revision: https://reviews.llvm.org/D64102
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/tools/llvm-lipo/Inputs/arm64-slice.yamlllvm.src/test/tools/llvm-lipo/Inputs/arm64-slice.yaml
The file was added/llvm/trunk/test/tools/llvm-lipo/Inputs/armv7-slice.yamlllvm.src/test/tools/llvm-lipo/Inputs/armv7-slice.yaml
The file was added/llvm/trunk/test/tools/llvm-lipo/Inputs/x86_64-slice.yamlllvm.src/test/tools/llvm-lipo/Inputs/x86_64-slice.yaml
The file was added/llvm/trunk/test/tools/llvm-lipo/create-executable.testllvm.src/test/tools/llvm-lipo/create-executable.test
The file was added/llvm/trunk/test/tools/llvm-lipo/create-invalid-input.testllvm.src/test/tools/llvm-lipo/create-invalid-input.test
The file was added/llvm/trunk/test/tools/llvm-lipo/create-without-alignment.testllvm.src/test/tools/llvm-lipo/create-without-alignment.test
The file was modified/llvm/trunk/tools/llvm-lipo/LipoOpts.td (diff)llvm.src/tools/llvm-lipo/LipoOpts.td
The file was modified/llvm/trunk/tools/llvm-lipo/llvm-lipo.cpp (diff)llvm.src/tools/llvm-lipo/llvm-lipo.cpp
Revision 366511 by Lang Hames:
Update the SimpleJIT class in the clang-interpreter example to use ORCv2.

This will remove the ORCv1 deprecation warnings.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/examples/clang-interpreter/main.cpp (diff)clang.src/examples/clang-interpreter/main.cpp
Revision 366510 by efriedma:
Update polly test for SCEV change.

r366419 adds nsw to more SCEV expressions, which allows polly to
make more aggressive assumptions about the input expressions.
Change TypePath in RepositoryPath in Workspace
The file was modified/polly/trunk/test/DeLICM/reduction_looprotate_hoisted.ll (diff)polly.src/test/DeLICM/reduction_looprotate_hoisted.ll
Revision 366509 by arphaman:
[clang-scan-deps] Dependency directives source minimizer: handle #pragma once

We should re-emit `#pragma once` to ensure the preprocessor will
still honor it when running on minimized sources.

Differential Revision: https://reviews.llvm.org/D64945
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Lex/DependencyDirectivesSourceMinimizer.h (diff)clang.src/include/clang/Lex/DependencyDirectivesSourceMinimizer.h
The file was modified/cfe/trunk/lib/Lex/DependencyDirectivesSourceMinimizer.cpp (diff)clang.src/lib/Lex/DependencyDirectivesSourceMinimizer.cpp
The file was modified/cfe/trunk/unittests/Lex/DependencyDirectivesSourceMinimizerTest.cpp (diff)clang.src/unittests/Lex/DependencyDirectivesSourceMinimizerTest.cpp
Revision 366505 by rampitec:
[AMDGPU] Drop Reg32 and use regular AsmName

This allows to reduce generated AMDGPUGenAsmWriter.inc by ~100Kb.

Differential Revision: https://reviews.llvm.org/D64952
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp (diff)llvm.src/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIRegisterInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/SIRegisterInfo.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIRegisterInfo.td (diff)llvm.src/lib/Target/AMDGPU/SIRegisterInfo.td
Revision 366504 by tlively:
[WebAssembly] Use passive segments by default when memory is shared

Summary:
This change makes it so that passing --shared-memory is all a user
needs to do to get proper multithreaded code. This default can still
be explicitly overridden for any reason using --passive-segments and
--active-segments.

Reviewers: sbc100, quantum

Subscribers: dschuff, jgravelle-google, aheejin, sunfish, jfb, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64950
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/test/wasm/data-layout.ll (diff)lld.src/test/wasm/data-layout.ll
The file was modified/lld/trunk/test/wasm/data-segments.ll (diff)lld.src/test/wasm/data-segments.ll
The file was modified/lld/trunk/test/wasm/import-memory.test (diff)lld.src/test/wasm/import-memory.test
The file was modified/lld/trunk/test/wasm/shared-memory.yaml (diff)lld.src/test/wasm/shared-memory.yaml
The file was modified/lld/trunk/test/wasm/tls.ll (diff)lld.src/test/wasm/tls.ll
The file was modified/lld/trunk/wasm/Driver.cpp (diff)lld.src/wasm/Driver.cpp
The file was modified/lld/trunk/wasm/Options.td (diff)lld.src/wasm/Options.td
Revision 366503 by paquette:
[GlobalISel][AArch64] Add support for base register + offset register loads

Add support for folding G_GEPs into loads of the form

```
ldr reg, [base, off]
```

when possible. This can save an add before the load. Currently, this is only
supported for loads of 64 bits into 64 bit registers.

Add a new addressing mode function, `selectAddrModeRegisterOffset` which
performs this folding when it is profitable.

Also add a test for addressing modes for G_LOAD.

Differential Revision: https://reviews.llvm.org/D64944
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstructionSelector.cpp (diff)llvm.src/lib/Target/AArch64/AArch64InstructionSelector.cpp
The file was added/llvm/trunk/test/CodeGen/AArch64/GlobalISel/load-addressing-modes.mirllvm.src/test/CodeGen/AArch64/GlobalISel/load-addressing-modes.mir
Revision 366502 by pcc:
CodeGen: Allow !associated metadata to point to aliases.

This is a small extension of !associated, mostly useful for the implementation
convenience of instrumentation passes that RAUW globals with aliases, such
as LowerTypeTests.

Differential Revision: https://reviews.llvm.org/D64951
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp (diff)llvm.src/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/elf-associated.ll (diff)llvm.src/test/CodeGen/X86/elf-associated.ll
Revision 366501 by rnk:
Revert [X86] EltsFromConsecutiveLoads - support common source loads

This reverts r366441 (git commit 48104ef7c9c653bbb732b66d7254957389fea337)

This causes clang to fail to compile some file in Skia. Reduction soon.
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/clear_upper_vector_element_bits.ll (diff)llvm.src/test/CodeGen/X86/clear_upper_vector_element_bits.ll
The file was modified/llvm/trunk/test/CodeGen/X86/load-partial.ll (diff)llvm.src/test/CodeGen/X86/load-partial.ll
Revision 366500 by quantum:
[WebAssembly] fix bug in finding .tdata segment

Summary: Fix bug in `wasm-ld`'s `Writer::createInitTLSFunction` that only finds `.tdata` if it's the first section.

Reviewers: tlively, aheejin, sbc100

Reviewed By: sbc100

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

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64947
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/test/wasm/tls.ll (diff)lld.src/test/wasm/tls.ll
The file was modified/lld/trunk/wasm/Writer.cpp (diff)lld.src/wasm/Writer.cpp
Revision 366499 by quantum:
[WebAssembly] Fix __builtin_wasm_tls_base intrinsic

Summary:
Properly generate the outchain for the `__builtin_wasm_tls_base` intrinsic.

Also marked the intrinsic pure, per @sunfish's suggestion.

Reviewers: tlively, aheejin, sbc100, sunfish

Reviewed By: tlively

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

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D64949
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/llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/tls-general-dynamic.ll (diff)llvm.src/test/CodeGen/WebAssembly/tls-general-dynamic.ll
Revision 366498 by lanza:
[cmake] Only run llvm-codesign if targetting apple on an apple host

Summary:
Other platforms don't have the capability to perform llvm_codesign
step. If LLVM_CODESIGNING_IDENTITY is set then this chunk of code would
attempt to codesign if the target was Apple. But when cross compiling
to Darwin from Linux, for example, this step would fail. So test if the
host is Apple as well.

Subscribers: mgorny, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64942
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/cmake/modules/AddLLVM.cmake (diff)llvm.src/cmake/modules/AddLLVM.cmake
Revision 366497 by pcc:
Fix typo in r366494. Spotted by Yuanfang Chen.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/IR/Constants.cpp (diff)llvm.src/lib/IR/Constants.cpp
Revision 366496 by steven_wu:
Remove the static initialize introduced in r365099

Summary:
Some polish for r365099 which adds a static initializer to
MachOObjectFile. Remove it by moving it to file scope.

Reviewers: smeenai, alexshap, compnerd, mtrent, anushabasana

Reviewed By: smeenai

Subscribers: hiraditya, jkorous, dexonsmith, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64873
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Object/MachOObjectFile.cpp (diff)llvm.src/lib/Object/MachOObjectFile.cpp
Revision 366494 by pcc:
IR: Teach Constant::needsRelocation() that relative pointers don't need to be relocated.

This causes sections with relative pointers to be marked as read only,
which means that they won't end up sharing pages with writable data.

Differential Revision: https://reviews.llvm.org/D64948
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/IR/Constants.cpp (diff)llvm.src/lib/IR/Constants.cpp
The file was added/llvm/trunk/test/CodeGen/X86/relptr-rodata.llllvm.src/test/CodeGen/X86/relptr-rodata.ll
Revision 366488 by yln:
[ASan] Support `{f}puts(NULL)` on Darwin, part 2

Add braces around macro `{ MACRO(); }` to guard against macros that
expand to multiple statements.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc (diff)compiler-rt.src/lib/sanitizer_common/sanitizer_common_interceptors.inc
Revision 366487 by pcc:
gn build: Merge r366458.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/clang-tools-extra/clangd/BUILD.gn (diff)llvm.src/utils/gn/secondary/clang-tools-extra/clangd/BUILD.gn
Revision 366486 by jrose:
FileSystem: Check for DTTOIF alone, not _DIRENT_HAVE_D_TYPE

While 'd_type' is a non-standard extension to `struct dirent`, only
glibc signals its presence with a macro '_DIRENT_HAVE_D_TYPE'.
However, any platform with 'd_type' also includes a way to convert to
mode_t values using the macro 'DTTOIF', so we can check for that alone
and still be confident that the 'd_type' member exists.

(If this turns out to be wrong, I'll go back and set up an actual
CMake check.)

I couldn't think of how to write a test for this, because I couldn't
think of how to test that a 'stat' call doesn't happen without
controlling the filesystem or intercepting 'stat', and there's no good
cross-platform way to do that that I know of.

Follow-up (almost a year later) to r342089.

rdar://problem/50592673
https://reviews.llvm.org/D64940
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Support/Unix/Path.inc (diff)llvm.src/lib/Support/Unix/Path.inc
Revision 366485 by Lang Hames:
[ORC] Suppress an ORCv1 deprecation warning.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/ExecutionEngine/Orc/OrcCBindingsStack.h (diff)llvm.src/lib/ExecutionEngine/Orc/OrcCBindingsStack.h
Revision 366484 by Louis Dionne:
[libc++] Add C++17 deduction guides for std::function

Summary: http://llvm.org/PR39606

Reviewers: Quuxplusone

Subscribers: christof, dexonsmith, libcxx-commits

Differential Revision: https://reviews.llvm.org/D54410
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/include/functional (diff)libcxx.src/include/functional
The file was added/libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/deduct_F.fail.cpplibcxx.src/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/deduct_F.fail.cpp
The file was added/libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/deduct_F.pass.cpplibcxx.src/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/deduct_F.pass.cpp
The file was added/libcxx/trunk/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/deduct_ptr.pass.cpplibcxx.src/test/std/utilities/function.objects/func.wrap/func.wrap.func/func.wrap.func.con/deduct_ptr.pass.cpp
Revision 366483 by abataev:
[OPENMP]Fix sharing of threadprivate variables with TLS support.

If the threadprivate variable is used in the copyin clause on inner
parallel directive with TLS support, we capture this variable in all
outer OpenMP scopes. It leads to the fact that in all scopes we're
working with the original variable, not the threadprivate copies.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaOpenMP.cpp (diff)clang.src/lib/Sema/SemaOpenMP.cpp
The file was modified/cfe/trunk/test/OpenMP/parallel_copyin_codegen.cpp (diff)clang.src/test/OpenMP/parallel_copyin_codegen.cpp
Revision 366482 by ormris:
[compiler-rt] Complete revert of r366413

Incomplete revert. Mea culpa. This test is failing on sanitizer-x86_64-linux
and our internal CI.
Change TypePath in RepositoryPath in Workspace
The file was removed/compiler-rt/trunk/test/asan/TestCases/Linux/dlopen-mixed-c-cxx.ccompiler-rt.src/test/asan/TestCases/Linux/dlopen-mixed-c-cxx.c
Revision 366481 by Raphael Isemann:
Fix C++ modules build

llvm-svn: 366344 missed an include that broke the LLVM_ENABLE_MODULES
build.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/ExecutionEngine/Orc/LambdaResolver.h (diff)llvm.src/include/llvm/ExecutionEngine/Orc/LambdaResolver.h
Revision 366480 by asb:
[RISCV] Hard float ABI support

The RISC-V hard float calling convention requires the frontend to:

* Detect cases where, once "flattened", a struct can be passed using
int+fp or fp+fp registers under the hard float ABI and coerce to the
appropriate type(s)
* Track usage of GPRs and FPRs in order to gate the above, and to
determine when signext/zeroext attributes must be added to integer
scalars

This patch attempts to do this in compliance with the documented ABI,
and uses ABIArgInfo::CoerceAndExpand in order to do this. @rjmccall, as
author of that code I've tagged you as reviewer for initial feedback on
my usage.

Note that a previous version of the ABI indicated that when passing an
int+fp struct using a GPR+FPR, the int would need to be sign or
zero-extended appropriately. GCC never did this and the ABI was changed,
which makes life easier as ABIArgInfo::CoerceAndExpand can't currently
handle sign/zero-extension attributes.

Re-landed after backing out 366450 due to missed hunks.

Differential Revision: https://reviews.llvm.org/D60456
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Basic/Targets/RISCV.cpp (diff)clang.src/lib/Basic/Targets/RISCV.cpp
The file was modified/cfe/trunk/lib/Basic/Targets/RISCV.h (diff)clang.src/lib/Basic/Targets/RISCV.h
The file was modified/cfe/trunk/lib/CodeGen/TargetInfo.cpp (diff)clang.src/lib/CodeGen/TargetInfo.cpp
The file was modified/cfe/trunk/test/CodeGen/riscv32-ilp32-ilp32f-abi.c (diff)clang.src/test/CodeGen/riscv32-ilp32-ilp32f-abi.c
The file was modified/cfe/trunk/test/CodeGen/riscv32-ilp32-ilp32f-ilp32d-abi.c (diff)clang.src/test/CodeGen/riscv32-ilp32-ilp32f-ilp32d-abi.c
The file was added/cfe/trunk/test/CodeGen/riscv32-ilp32d-abi.cclang.src/test/CodeGen/riscv32-ilp32d-abi.c
The file was added/cfe/trunk/test/CodeGen/riscv32-ilp32f-abi.cclang.src/test/CodeGen/riscv32-ilp32f-abi.c
The file was added/cfe/trunk/test/CodeGen/riscv32-ilp32f-ilp32d-abi.cclang.src/test/CodeGen/riscv32-ilp32f-ilp32d-abi.c
The file was modified/cfe/trunk/test/CodeGen/riscv64-lp64-lp64f-abi.c (diff)clang.src/test/CodeGen/riscv64-lp64-lp64f-abi.c
The file was modified/cfe/trunk/test/CodeGen/riscv64-lp64-lp64f-lp64d-abi.c (diff)clang.src/test/CodeGen/riscv64-lp64-lp64f-lp64d-abi.c
The file was added/cfe/trunk/test/CodeGen/riscv64-lp64d-abi.cclang.src/test/CodeGen/riscv64-lp64d-abi.c
The file was added/cfe/trunk/test/CodeGen/riscv64-lp64f-lp64d-abi.cclang.src/test/CodeGen/riscv64-lp64f-lp64d-abi.c
The file was modified/cfe/trunk/test/Driver/riscv-abi.c (diff)clang.src/test/Driver/riscv-abi.c
The file was modified/cfe/trunk/test/Preprocessor/riscv-target-features.c (diff)clang.src/test/Preprocessor/riscv-target-features.c
Revision 366479 by akhuang:
[COFF] Change a variable type to be const in the HeapAllocSite map.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/MachineFunction.h (diff)llvm.src/include/llvm/CodeGen/MachineFunction.h
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp (diff)llvm.src/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.h (diff)llvm.src/lib/CodeGen/AsmPrinter/CodeViewDebug.h
The file was modified/llvm/trunk/lib/CodeGen/MachineFunction.cpp (diff)llvm.src/lib/CodeGen/MachineFunction.cpp
The file was modified/llvm/trunk/lib/CodeGen/SelectionDAG/FastISel.cpp (diff)llvm.src/lib/CodeGen/SelectionDAG/FastISel.cpp
Revision 366477 by kpn:
[FPEnv] Teach the IRBuilder about constrained FPTrunc and FPExt

The IRBuilder doesn't know that FPTrunc and FPExt have constrained
equivalents. Add the support by building on the strict FP mode now
present in the IRBuilder.

Reviewed by: John McCall
Approved by: John McCall
Differential Revision: https://reviews.llvm.org/D64934
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/IRBuilder.h (diff)llvm.src/include/llvm/IR/IRBuilder.h
The file was modified/llvm/trunk/unittests/IR/IRBuilderTest.cpp (diff)llvm.src/unittests/IR/IRBuilderTest.cpp
Revision 366475 by quantum:
[WebAssembly] Implement __builtin_wasm_tls_base intrinsic

Summary:
Add `__builtin_wasm_tls_base` so that LeakSanitizer can find the thread-local
block and scan through it for memory leaks.

Reviewers: tlively, aheejin, sbc100

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

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D64900
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/WebAssemblyISelDAGToDAG.cpp (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/tls-general-dynamic.ll (diff)llvm.src/test/CodeGen/WebAssembly/tls-general-dynamic.ll
Revision 366474 by abataev:
[OPENMP]Provide correct data sharing attributes for loop control
variables.

Loop control variables are private in loop-based constructs and we shall
take this into account when generate the code for inner constructs.
Currently, those variables are reported as shared in many cases. Moved
the analysis of the data-sharing attributes of the loop control variable
to an early semantic stage to correctly handle their attributes.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaOpenMP.cpp (diff)clang.src/lib/Sema/SemaOpenMP.cpp
The file was modified/cfe/trunk/test/OpenMP/distribute_parallel_for_firstprivate_messages.cpp (diff)clang.src/test/OpenMP/distribute_parallel_for_firstprivate_messages.cpp
The file was modified/cfe/trunk/test/OpenMP/distribute_parallel_for_simd_firstprivate_messages.cpp (diff)clang.src/test/OpenMP/distribute_parallel_for_simd_firstprivate_messages.cpp
The file was modified/cfe/trunk/test/OpenMP/distribute_simd_firstprivate_messages.cpp (diff)clang.src/test/OpenMP/distribute_simd_firstprivate_messages.cpp
The file was modified/cfe/trunk/test/OpenMP/distribute_simd_misc_messages.c (diff)clang.src/test/OpenMP/distribute_simd_misc_messages.c
The file was modified/cfe/trunk/test/OpenMP/for_misc_messages.c (diff)clang.src/test/OpenMP/for_misc_messages.c
The file was modified/cfe/trunk/test/OpenMP/for_simd_misc_messages.c (diff)clang.src/test/OpenMP/for_simd_misc_messages.c
The file was modified/cfe/trunk/test/OpenMP/parallel_for_firstprivate_messages.cpp (diff)clang.src/test/OpenMP/parallel_for_firstprivate_messages.cpp
The file was modified/cfe/trunk/test/OpenMP/parallel_for_misc_messages.c (diff)clang.src/test/OpenMP/parallel_for_misc_messages.c
The file was modified/cfe/trunk/test/OpenMP/parallel_for_simd_firstprivate_messages.cpp (diff)clang.src/test/OpenMP/parallel_for_simd_firstprivate_messages.cpp
The file was modified/cfe/trunk/test/OpenMP/simd_misc_messages.c (diff)clang.src/test/OpenMP/simd_misc_messages.c
The file was modified/cfe/trunk/test/OpenMP/target_parallel_for_firstprivate_messages.cpp (diff)clang.src/test/OpenMP/target_parallel_for_firstprivate_messages.cpp
The file was modified/cfe/trunk/test/OpenMP/target_parallel_for_misc_messages.c (diff)clang.src/test/OpenMP/target_parallel_for_misc_messages.c
The file was modified/cfe/trunk/test/OpenMP/target_parallel_for_simd_firstprivate_messages.cpp (diff)clang.src/test/OpenMP/target_parallel_for_simd_firstprivate_messages.cpp
The file was modified/cfe/trunk/test/OpenMP/target_parallel_for_simd_misc_messages.c (diff)clang.src/test/OpenMP/target_parallel_for_simd_misc_messages.c
The file was modified/cfe/trunk/test/OpenMP/target_simd_firstprivate_messages.cpp (diff)clang.src/test/OpenMP/target_simd_firstprivate_messages.cpp
The file was modified/cfe/trunk/test/OpenMP/target_teams_distribute_parallel_for_simd_misc_messages.c (diff)clang.src/test/OpenMP/target_teams_distribute_parallel_for_simd_misc_messages.c
The file was modified/cfe/trunk/test/OpenMP/target_teams_distribute_simd_misc_messages.c (diff)clang.src/test/OpenMP/target_teams_distribute_simd_misc_messages.c
The file was modified/cfe/trunk/test/OpenMP/task_codegen.c (diff)clang.src/test/OpenMP/task_codegen.c
The file was modified/cfe/trunk/test/OpenMP/taskloop_firstprivate_messages.cpp (diff)clang.src/test/OpenMP/taskloop_firstprivate_messages.cpp
The file was modified/cfe/trunk/test/OpenMP/taskloop_simd_firstprivate_messages.cpp (diff)clang.src/test/OpenMP/taskloop_simd_firstprivate_messages.cpp
Revision 366473 by ymandel:
[LibTooling] Relax Transformer to allow rewriting macro expansions

Summary:
Currently, Transformer rejects any changes to source locations inside macro
expansions. This change relaxes that constraint to allow rewrites when the
entirety of the expansion is replaced, since that can be mapped to replacing the
entirety of the expansion range in the file source.  This change makes
Transformer consistent with the handling of edit ranges in `clang::edit::Commit`
(which is used, for example, for applying `FixItHint`s from diagnostics).

Reviewers: ilya-biryukov

Subscribers: gribozavr, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64518
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Tooling/Refactoring/Transformer.cpp (diff)clang.src/lib/Tooling/Refactoring/Transformer.cpp
The file was modified/cfe/trunk/unittests/Tooling/TransformerTest.cpp (diff)clang.src/unittests/Tooling/TransformerTest.cpp
Revision 366472 by ormris:
Revert "Fix asan infinite loop on undefined symbol"

This reverts commit 63719119c78ca965b5d80e5c20fcfe81ba28f896.

The tests in this commit were failing on a Linux sanitizer bot
and our internal CI.

http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux/builds/22401/steps/test%20standalone%20compiler-rt%20with%20symbolizer/logs/stdio
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/interception/interception_linux.cc (diff)compiler-rt.src/lib/interception/interception_linux.cc
Revision 366470 by hliao:
[LAA] Re-check bit-width of pointers after stripping.

Summary:
- As the pointer stripping now tracks through `addrspacecast`, prepare
  to handle the bit-width difference from the result pointer.

Reviewers: jdoerfert

Subscribers: jvesely, nhaehnle, hiraditya, arphaman, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64928
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/LoopAccessAnalysis.cpp (diff)llvm.src/lib/Analysis/LoopAccessAnalysis.cpp
The file was modified/llvm/trunk/test/Transforms/SLPVectorizer/AMDGPU/address-space-ptr-sze-gep-index-assert.ll (diff)llvm.src/test/Transforms/SLPVectorizer/AMDGPU/address-space-ptr-sze-gep-index-assert.ll
Revision 366469 by ymandel:
[LibTooling] Add function to translate and validate source range for editing

Summary:
Adds the function `getRangeForEdit` to validate that a given source range is
editable and, if needed, translate it into a range in the source file (for
example, if it's sourced in macro expansions).

Reviewers: ilya-biryukov

Subscribers: cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64924
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Tooling/Refactoring/SourceCode.h (diff)clang.src/include/clang/Tooling/Refactoring/SourceCode.h
The file was modified/cfe/trunk/lib/Tooling/Refactoring/SourceCode.cpp (diff)clang.src/lib/Tooling/Refactoring/SourceCode.cpp
The file was modified/cfe/trunk/unittests/Tooling/SourceCodeTest.cpp (diff)clang.src/unittests/Tooling/SourceCodeTest.cpp
Revision 366468 by kadircet:
[clangd] Remove dead code from BackgroundIndex
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/index/Background.cpp (diff)clang-tools-extra.src/clangd/index/Background.cpp
Revision 366467 by kadircet:
[clangd] BackgroundIndex stores shards to the closest project

Summary:
Changes persistance logic to store shards at the directory of closest
CDB. Previously we were storing all shards to directory of the CDB that
triggered indexing, it had its downsides.

For example, if you had two TUs coming from a different CDB but depending on the
same header foo.h, we will store the foo.h only for the first CDB, and it would
be missing for the second and we would never persist it since it was actually
present in the memory and persisted before.

This patch still stores only a single copy of a shard, but makes the directory a
function of the file name. So that the shard place will be unique even with
multiple CDBs accessing the file. This directory is determined as the first
directory containing a CDB in the file's parent directories, if no such
directory exists we make use of the home directory.

Reviewers: sammccall

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64745
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/ClangdServer.cpp (diff)clang-tools-extra.src/clangd/ClangdServer.cpp
The file was modified/clang-tools-extra/trunk/clangd/index/Background.cpp (diff)clang-tools-extra.src/clangd/index/Background.cpp
The file was modified/clang-tools-extra/trunk/clangd/index/Background.h (diff)clang-tools-extra.src/clangd/index/Background.h
The file was modified/clang-tools-extra/trunk/clangd/index/BackgroundIndexLoader.cpp (diff)clang-tools-extra.src/clangd/index/BackgroundIndexLoader.cpp
The file was modified/clang-tools-extra/trunk/clangd/index/BackgroundIndexStorage.cpp (diff)clang-tools-extra.src/clangd/index/BackgroundIndexStorage.cpp
The file was modified/clang-tools-extra/trunk/clangd/test/Inputs/background-index/definition.jsonrpc (diff)clang-tools-extra.src/clangd/test/Inputs/background-index/definition.jsonrpc
The file was modified/clang-tools-extra/trunk/clangd/test/Inputs/background-index/foo.cpp (diff)clang-tools-extra.src/clangd/test/Inputs/background-index/foo.cpp
The file was removed/clang-tools-extra/trunk/clangd/test/Inputs/background-index/foo.hclang-tools-extra.src/clangd/test/Inputs/background-index/foo.h
The file was added/clang-tools-extra/trunk/clangd/test/Inputs/background-index/sub_dirclang-tools-extra.src/clangd/test/Inputs/background-index/sub_dir
The file was added/clang-tools-extra/trunk/clangd/test/Inputs/background-index/sub_dir/compile_flags.txtclang-tools-extra.src/clangd/test/Inputs/background-index/sub_dir/compile_flags.txt
The file was added/clang-tools-extra/trunk/clangd/test/Inputs/background-index/sub_dir/foo.hclang-tools-extra.src/clangd/test/Inputs/background-index/sub_dir/foo.h
The file was modified/clang-tools-extra/trunk/clangd/test/background-index.test (diff)clang-tools-extra.src/clangd/test/background-index.test
Revision 366466 by pcc:
ELF: Add support for remaining R_AARCH64_MOVW* relocations.

Differential Revision: https://reviews.llvm.org/D64685
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/ELF/Arch/AArch64.cpp (diff)lld.src/ELF/Arch/AArch64.cpp
The file was added/lld/trunk/test/ELF/aarch64-movw-error.slld.src/test/ELF/aarch64-movw-error.s
The file was modified/lld/trunk/test/ELF/aarch64-relocs.s (diff)lld.src/test/ELF/aarch64-relocs.s
Revision 366464 by yuanfang:
[NFC][llvm-readobj] Refactor dynamic string table indexing into a function.

Restore printDynamicString removed in rL363868. It provides better
error handling whenever indexing dynamic string table is needed.

Reviewers: jhenderson, MaskRay, grimar

Reviewed by: jhenderson, MaskRay, grimar

Differential Revision: https://reviews.llvm.org/D64674
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-readobj/elf-dynamic-malformed.test (diff)llvm.src/test/tools/llvm-readobj/elf-dynamic-malformed.test
The file was modified/llvm/trunk/tools/llvm-readobj/ELFDumper.cpp (diff)llvm.src/tools/llvm-readobj/ELFDumper.cpp
Revision 366463 by pcc:
ELF: Simplify test. NFCI.

Avoid splitting the test into multiple files and use zero for the value of
the symbol with addends at relocations so that it's clear what value is
being used at relocations.

Differential Revision: https://reviews.llvm.org/D64684
Change TypePath in RepositoryPath in Workspace
The file was removed/lld/trunk/test/ELF/Inputs/uabs_label.slld.src/test/ELF/Inputs/uabs_label.s
The file was modified/lld/trunk/test/ELF/aarch64-relocs.s (diff)lld.src/test/ELF/aarch64-relocs.s
Revision 366462 by pcc:
MC: AArch64: Add support for prel_g* relocation specifiers.

Differential Revision: https://reviews.llvm.org/D64683
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp (diff)llvm.src/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp (diff)llvm.src/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp (diff)llvm.src/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h (diff)llvm.src/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h
The file was modified/llvm/trunk/test/MC/AArch64/arm64-large-relocs.s (diff)llvm.src/test/MC/AArch64/arm64-large-relocs.s
Revision 366461 by pcc:
AArch64: Unify relocation restrictions between MOVK/MOVN/MOVZ.

There doesn't seem to be a practical reason for these instructions to have
different restrictions on the types of relocations that they may be used
with, notwithstanding the language in the ELF AArch64 spec that implies that
specific relocations are meant to be used with specific instructions.

For example, we currently forbid the first instruction in the following
sequence, despite it currently being used by clang to generate a global
reference under -mcmodel=large:

movz x0, #:abs_g0_nc:foo
movk x0, #:abs_g1_nc:foo
movk x0, #:abs_g2_nc:foo
movk x0, #:abs_g3:foo

Therefore, allow MOVK/MOVN/MOVZ to accept the union of the set of relocations
that they currently accept individually.

Differential Revision: https://reviews.llvm.org/D64466
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrFormats.td (diff)llvm.src/lib/Target/AArch64/AArch64InstrFormats.td
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td (diff)llvm.src/lib/Target/AArch64/AArch64InstrInfo.td
The file was modified/llvm/trunk/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp (diff)llvm.src/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
The file was modified/llvm/trunk/test/MC/AArch64/basic-a64-diagnostics.s (diff)llvm.src/test/MC/AArch64/basic-a64-diagnostics.s
Revision 366460 by pcc:
ELF: Allow forward references to linked sections.

It's possible to create IR that uses !associated to refer to a global that
appears later in the module, which can result in these types of forward
references being generated. Unfortunately our assembler does not currently
accept the resulting .s so I needed to use yaml2obj to test this.

Differential Revision: https://reviews.llvm.org/D64880
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/ELF/InputFiles.cpp (diff)lld.src/ELF/InputFiles.cpp
The file was added/lld/trunk/test/ELF/linkorder-forward-ref.testlld.src/test/ELF/linkorder-forward-ref.test
Revision 366458 by kadircet:
[clangd] Refactor background-index shard loading

Reviewers: sammccall

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64712
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/CMakeLists.txt (diff)clang-tools-extra.src/clangd/CMakeLists.txt
The file was modified/clang-tools-extra/trunk/clangd/index/Background.cpp (diff)clang-tools-extra.src/clangd/index/Background.cpp
The file was modified/clang-tools-extra/trunk/clangd/index/Background.h (diff)clang-tools-extra.src/clangd/index/Background.h
The file was added/clang-tools-extra/trunk/clangd/index/BackgroundIndexLoader.cppclang-tools-extra.src/clangd/index/BackgroundIndexLoader.cpp
The file was added/clang-tools-extra/trunk/clangd/index/BackgroundIndexLoader.hclang-tools-extra.src/clangd/index/BackgroundIndexLoader.h
The file was modified/clang-tools-extra/trunk/clangd/index/BackgroundRebuild.cpp (diff)clang-tools-extra.src/clangd/index/BackgroundRebuild.cpp
The file was modified/clang-tools-extra/trunk/clangd/index/BackgroundRebuild.h (diff)clang-tools-extra.src/clangd/index/BackgroundRebuild.h
The file was modified/clang-tools-extra/trunk/clangd/unittests/BackgroundIndexTests.cpp (diff)clang-tools-extra.src/clangd/unittests/BackgroundIndexTests.cpp
Revision 366457 by ibiryukov:
[ASTUnit] Attempt to unbreak Windows buildbots after r366448
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/Index/complete-qualified-cached.cpp (diff)clang.src/test/Index/complete-qualified-cached.cpp
Revision 366456 by hliao:
Minor styling fix. NFC.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp (diff)llvm.src/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
Revision 366455 by kadircet:
[clangd] Get rid of dots and dotsdots within GlobalCompilationDatabase

Reviewers: sammccall

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64860
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/FS.cpp (diff)clang-tools-extra.src/clangd/FS.cpp
The file was modified/clang-tools-extra/trunk/clangd/FS.h (diff)clang-tools-extra.src/clangd/FS.h
The file was modified/clang-tools-extra/trunk/clangd/GlobalCompilationDatabase.cpp (diff)clang-tools-extra.src/clangd/GlobalCompilationDatabase.cpp
The file was modified/clang-tools-extra/trunk/clangd/unittests/GlobalCompilationDatabaseTests.cpp (diff)clang-tools-extra.src/clangd/unittests/GlobalCompilationDatabaseTests.cpp
Revision 366454 by asb:
Revert "[RISCV] Hard float ABI support" r366450

The commit was missing a few hunks. Will fix and recommit.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Basic/Targets/RISCV.cpp (diff)clang.src/lib/Basic/Targets/RISCV.cpp
The file was modified/cfe/trunk/lib/Basic/Targets/RISCV.h (diff)clang.src/lib/Basic/Targets/RISCV.h
The file was modified/cfe/trunk/lib/CodeGen/TargetInfo.cpp (diff)clang.src/lib/CodeGen/TargetInfo.cpp
The file was modified/cfe/trunk/test/CodeGen/riscv32-ilp32-ilp32f-abi.c (diff)clang.src/test/CodeGen/riscv32-ilp32-ilp32f-abi.c
The file was modified/cfe/trunk/test/CodeGen/riscv32-ilp32-ilp32f-ilp32d-abi.c (diff)clang.src/test/CodeGen/riscv32-ilp32-ilp32f-ilp32d-abi.c
The file was removed/cfe/trunk/test/CodeGen/riscv32-ilp32d-abi.cclang.src/test/CodeGen/riscv32-ilp32d-abi.c
The file was removed/cfe/trunk/test/CodeGen/riscv32-ilp32f-abi.cclang.src/test/CodeGen/riscv32-ilp32f-abi.c
The file was removed/cfe/trunk/test/CodeGen/riscv32-ilp32f-ilp32d-abi.cclang.src/test/CodeGen/riscv32-ilp32f-ilp32d-abi.c
The file was modified/cfe/trunk/test/CodeGen/riscv64-lp64-lp64f-abi.c (diff)clang.src/test/CodeGen/riscv64-lp64-lp64f-abi.c
The file was modified/cfe/trunk/test/CodeGen/riscv64-lp64-lp64f-lp64d-abi.c (diff)clang.src/test/CodeGen/riscv64-lp64-lp64f-lp64d-abi.c
The file was removed/cfe/trunk/test/CodeGen/riscv64-lp64d-abi.cclang.src/test/CodeGen/riscv64-lp64d-abi.c
The file was removed/cfe/trunk/test/CodeGen/riscv64-lp64f-lp64d-abi.cclang.src/test/CodeGen/riscv64-lp64f-lp64d-abi.c
The file was modified/cfe/trunk/test/Preprocessor/riscv-target-features.c (diff)clang.src/test/Preprocessor/riscv-target-features.c
Revision 366453 by ibiryukov:
Revert r366449: [CrossTU] Add a function to retrieve original source location.

Reason: the commit breaks layering by adding a dependency on ASTUnit
(which is inside clangFrontend) from the ASTImporter (which is inside
clangAST).
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/ASTImporter.h (diff)clang.src/include/clang/AST/ASTImporter.h
The file was modified/cfe/trunk/include/clang/AST/ASTImporterSharedState.h (diff)clang.src/include/clang/AST/ASTImporterSharedState.h
The file was modified/cfe/trunk/include/clang/CrossTU/CrossTranslationUnit.h (diff)clang.src/include/clang/CrossTU/CrossTranslationUnit.h
The file was modified/cfe/trunk/lib/AST/ASTImporter.cpp (diff)clang.src/lib/AST/ASTImporter.cpp
The file was modified/cfe/trunk/lib/CrossTU/CrossTranslationUnit.cpp (diff)clang.src/lib/CrossTU/CrossTranslationUnit.cpp
The file was modified/cfe/trunk/unittests/CrossTU/CrossTranslationUnitTest.cpp (diff)clang.src/unittests/CrossTU/CrossTranslationUnitTest.cpp
Revision 366452 by sureyeaah:
[Clangd] NFC: Fixed tweaks CMakeLists order to alphabetical
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/refactor/tweaks/CMakeLists.txt (diff)clang-tools-extra.src/clangd/refactor/tweaks/CMakeLists.txt
Revision 366451 by sureyeaah:
[Clangd] Changed ExtractVariable to only work on non empty selections

Summary:
- For now, we don't trigger in any case if it's an empty selection
- Fixed unittests

Reviewers: kadircet, sammccall

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64912
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/refactor/Tweak.cpp (diff)clang-tools-extra.src/clangd/refactor/Tweak.cpp
The file was modified/clang-tools-extra/trunk/clangd/refactor/Tweak.h (diff)clang-tools-extra.src/clangd/refactor/Tweak.h
The file was modified/clang-tools-extra/trunk/clangd/refactor/tweaks/ExtractVariable.cpp (diff)clang-tools-extra.src/clangd/refactor/tweaks/ExtractVariable.cpp
The file was modified/clang-tools-extra/trunk/clangd/unittests/TweakTests.cpp (diff)clang-tools-extra.src/clangd/unittests/TweakTests.cpp
Revision 366450 by asb:
[RISCV] Hard float ABI support

The RISC-V hard float calling convention requires the frontend to:

* Detect cases where, once "flattened", a struct can be passed using
int+fp or fp+fp registers under the hard float ABI and coerce to the
appropriate type(s) * Track usage of GPRs and FPRs in order to gate the
above, and to
determine when signext/zeroext attributes must be added to integer
scalars

This patch attempts to do this in compliance with the documented ABI,
and uses ABIArgInfo::CoerceAndExpand in order to do this. @rjmccall, as
author of that code I've tagged you as reviewer for initial feedback on
my usage.

Note that a previous version of the ABI indicated that when passing an
int+fp struct using a GPR+FPR, the int would need to be sign or
zero-extended appropriately. GCC never did this and the ABI was changed,
which makes life easier as ABIArgInfo::CoerceAndExpand can't currently
handle sign/zero-extension attributes.

Differential Revision: https://reviews.llvm.org/D60456
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Basic/Targets/RISCV.cpp (diff)clang.src/lib/Basic/Targets/RISCV.cpp
The file was modified/cfe/trunk/lib/Basic/Targets/RISCV.h (diff)clang.src/lib/Basic/Targets/RISCV.h
The file was modified/cfe/trunk/lib/CodeGen/TargetInfo.cpp (diff)clang.src/lib/CodeGen/TargetInfo.cpp
The file was modified/cfe/trunk/test/CodeGen/riscv32-ilp32-ilp32f-abi.c (diff)clang.src/test/CodeGen/riscv32-ilp32-ilp32f-abi.c
The file was modified/cfe/trunk/test/CodeGen/riscv32-ilp32-ilp32f-ilp32d-abi.c (diff)clang.src/test/CodeGen/riscv32-ilp32-ilp32f-ilp32d-abi.c
The file was added/cfe/trunk/test/CodeGen/riscv32-ilp32d-abi.cclang.src/test/CodeGen/riscv32-ilp32d-abi.c
The file was added/cfe/trunk/test/CodeGen/riscv32-ilp32f-abi.cclang.src/test/CodeGen/riscv32-ilp32f-abi.c
The file was added/cfe/trunk/test/CodeGen/riscv32-ilp32f-ilp32d-abi.cclang.src/test/CodeGen/riscv32-ilp32f-ilp32d-abi.c
The file was modified/cfe/trunk/test/CodeGen/riscv64-lp64-lp64f-abi.c (diff)clang.src/test/CodeGen/riscv64-lp64-lp64f-abi.c
The file was modified/cfe/trunk/test/CodeGen/riscv64-lp64-lp64f-lp64d-abi.c (diff)clang.src/test/CodeGen/riscv64-lp64-lp64f-lp64d-abi.c
The file was added/cfe/trunk/test/CodeGen/riscv64-lp64d-abi.cclang.src/test/CodeGen/riscv64-lp64d-abi.c
The file was added/cfe/trunk/test/CodeGen/riscv64-lp64f-lp64d-abi.cclang.src/test/CodeGen/riscv64-lp64f-lp64d-abi.c
The file was modified/cfe/trunk/test/Preprocessor/riscv-target-features.c (diff)clang.src/test/Preprocessor/riscv-target-features.c
Revision 366449 by balazske:
[CrossTU] Add a function to retrieve original source location.

Summary:
A new function will be added to get the original SourceLocation
for a SourceLocation that was imported as result of getCrossTUDefinition.
The returned SourceLocation is in the context of the (original)
SourceManager for the original source file. Additionally the
ASTUnit object for that source file is returned. This is needed
to get a SourceManager to operate on with the returned source location.

The new function works if multiple different source files are loaded
with the same CrossTU context.

This patch can be treated as part of a bigger change that is needed to
improve macro expansion handliong at plist generation.

Reviewers: martong, shafik, a_sidorin, xazax.hun

Reviewed By: martong

Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64554
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/ASTImporter.h (diff)clang.src/include/clang/AST/ASTImporter.h
The file was modified/cfe/trunk/include/clang/AST/ASTImporterSharedState.h (diff)clang.src/include/clang/AST/ASTImporterSharedState.h
The file was modified/cfe/trunk/include/clang/CrossTU/CrossTranslationUnit.h (diff)clang.src/include/clang/CrossTU/CrossTranslationUnit.h
The file was modified/cfe/trunk/lib/AST/ASTImporter.cpp (diff)clang.src/lib/AST/ASTImporter.cpp
The file was modified/cfe/trunk/lib/CrossTU/CrossTranslationUnit.cpp (diff)clang.src/lib/CrossTU/CrossTranslationUnit.cpp
The file was modified/cfe/trunk/unittests/CrossTU/CrossTranslationUnitTest.cpp (diff)clang.src/unittests/CrossTU/CrossTranslationUnitTest.cpp
Revision 366448 by ibiryukov:
[ASTUnit] Fix a regression in cached completions

Summary:
After r345152 cached completions started adding namespaces after
nested name specifiers, e.g. in `some_name::^`

The CCC_Symbol indicates the completed item cannot be a namespace (it is
described as being "a type, a function or a variable" in the comments).

Therefore, 'nested specifier' completions should only be added from cache
when the context is CCC_SymbolOrNewName (which roughly seems to indicate
that a nested name specifier is allowed).

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

Reviewers: kadircet, sammccall

Reviewed By: kadircet, sammccall

Subscribers: arphaman, nik, sammccall, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64918
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Frontend/ASTUnit.cpp (diff)clang.src/lib/Frontend/ASTUnit.cpp
The file was added/cfe/trunk/test/Index/complete-qualified-cached.cppclang.src/test/Index/complete-qualified-cached.cpp
Revision 366447 by Jonas Devlieghere:
[CMake] Don't set Python_ADDITIONAL_VERSIONS

Until recently, Python_ADDITIONAL_VERSIONS was used to limit LLVM's
Python support to 2.7. Now that both LLVM and LLDB both support Python
3, there's no longer a need to put an arbitrary limit on this.

However, instead of removing the variable, r365692 expanded the list,
which has the (presumably unintentional) side-effect of expression
preference for Python 3.

Instead, as Michal proposed in the original code review, we should just
not set the list at all, and let CMake pick whatever Python interpreter
you have in your path.

This patch removes the Python_ADDITIONAL_VERSIONS variable in llvm,
clang and lld. I've also updated the docs with the default behavior and
how to force a different Python version to be used.

Differential revision: https://reviews.llvm.org/D64894
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/CMakeLists.txt (diff)clang.src/CMakeLists.txt
The file was modified/compiler-rt/trunk/CMakeLists.txt (diff)compiler-rt.src/CMakeLists.txt
The file was modified/lld/trunk/CMakeLists.txt (diff)lld.src/CMakeLists.txt
The file was modified/llvm/trunk/CMakeLists.txt (diff)llvm.src/CMakeLists.txt
The file was modified/llvm/trunk/docs/GettingStarted.rst (diff)llvm.src/docs/GettingStarted.rst
Revision 366446 by hokein:
[clangd] Suppress unwritten scopes when expanding auto.

Summary: otherwise the replacement will break the code.

Reviewers: sammccall

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64627
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/AST.cpp (diff)clang-tools-extra.src/clangd/AST.cpp
The file was modified/clang-tools-extra/trunk/clangd/AST.h (diff)clang-tools-extra.src/clangd/AST.h
The file was modified/clang-tools-extra/trunk/clangd/unittests/TweakTests.cpp (diff)clang-tools-extra.src/clangd/unittests/TweakTests.cpp
Revision 366445 by maskray:
[ELF][PPC] Delete ppc64-dynamic-relocations.s

I forgot to delete it in r366424.
Change TypePath in RepositoryPath in Workspace
The file was removed/lld/trunk/test/ELF/ppc64-dynamic-relocations.slld.src/test/ELF/ppc64-dynamic-relocations.s
Revision 366444 by hsiangkai:
Revert "[DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame."

This reverts commit 17e3cbf5fe656483d9016d0ba9e1d0cd8629379e.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h (diff)llvm.src/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h
The file was modified/llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFObject.h (diff)llvm.src/include/llvm/DebugInfo/DWARF/DWARFObject.h
The file was modified/llvm/trunk/include/llvm/MC/MCDwarf.h (diff)llvm.src/include/llvm/MC/MCDwarf.h
The file was modified/llvm/trunk/include/llvm/MC/MCFixup.h (diff)llvm.src/include/llvm/MC/MCFixup.h
The file was modified/llvm/trunk/include/llvm/MC/MCFragment.h (diff)llvm.src/include/llvm/MC/MCFragment.h
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cpp (diff)llvm.src/lib/DebugInfo/DWARF/DWARFContext.cpp
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp (diff)llvm.src/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp
The file was modified/llvm/trunk/lib/MC/MCAsmBackend.cpp (diff)llvm.src/lib/MC/MCAsmBackend.cpp
The file was modified/llvm/trunk/lib/MC/MCAssembler.cpp (diff)llvm.src/lib/MC/MCAssembler.cpp
The file was modified/llvm/trunk/lib/MC/MCDwarf.cpp (diff)llvm.src/lib/MC/MCDwarf.cpp
The file was modified/llvm/trunk/lib/Object/RelocationResolver.cpp (diff)llvm.src/lib/Object/RelocationResolver.cpp
The file was modified/llvm/trunk/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp (diff)llvm.src/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
The file was modified/llvm/trunk/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp (diff)llvm.src/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
The file was modified/llvm/trunk/test/CodeGen/RISCV/fixups-relax-diff.ll (diff)llvm.src/test/CodeGen/RISCV/fixups-relax-diff.ll
The file was modified/llvm/trunk/test/DebugInfo/RISCV/dwarf-riscv-relocs.ll (diff)llvm.src/test/DebugInfo/RISCV/dwarf-riscv-relocs.ll
The file was removed/llvm/trunk/test/DebugInfo/RISCV/relax-debug-frame.llllvm.src/test/DebugInfo/RISCV/relax-debug-frame.ll
The file was modified/llvm/trunk/test/MC/RISCV/fde-reloc.s (diff)llvm.src/test/MC/RISCV/fde-reloc.s
The file was modified/llvm/trunk/tools/dsymutil/DwarfLinker.cpp (diff)llvm.src/tools/dsymutil/DwarfLinker.cpp
Revision 366443 by sammccall:
[clangd] Disable DumpRecordLayout by default per https://bugs.llvm.org/show_bug.cgi?id=42670
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/refactor/tweaks/DumpAST.cpp (diff)clang-tools-extra.src/clangd/refactor/tweaks/DumpAST.cpp
Revision 366442 by hsiangkai:
[DebugInfo] Generate fixups as emitting DWARF .debug_frame/.eh_frame.

It is necessary to generate fixups in .debug_frame or .eh_frame as
relaxation is enabled due to the address delta may be changed after
relaxation.

There is an opcode with 6-bits data in debug frame encoding. So, we
also need 6-bits fixup types.

Differential Revision: https://reviews.llvm.org/D58335
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h (diff)llvm.src/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h
The file was modified/llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFObject.h (diff)llvm.src/include/llvm/DebugInfo/DWARF/DWARFObject.h
The file was modified/llvm/trunk/include/llvm/MC/MCDwarf.h (diff)llvm.src/include/llvm/MC/MCDwarf.h
The file was modified/llvm/trunk/include/llvm/MC/MCFixup.h (diff)llvm.src/include/llvm/MC/MCFixup.h
The file was modified/llvm/trunk/include/llvm/MC/MCFragment.h (diff)llvm.src/include/llvm/MC/MCFragment.h
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cpp (diff)llvm.src/lib/DebugInfo/DWARF/DWARFContext.cpp
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp (diff)llvm.src/lib/DebugInfo/DWARF/DWARFDebugFrame.cpp
The file was modified/llvm/trunk/lib/MC/MCAsmBackend.cpp (diff)llvm.src/lib/MC/MCAsmBackend.cpp
The file was modified/llvm/trunk/lib/MC/MCAssembler.cpp (diff)llvm.src/lib/MC/MCAssembler.cpp
The file was modified/llvm/trunk/lib/MC/MCDwarf.cpp (diff)llvm.src/lib/MC/MCDwarf.cpp
The file was modified/llvm/trunk/lib/Object/RelocationResolver.cpp (diff)llvm.src/lib/Object/RelocationResolver.cpp
The file was modified/llvm/trunk/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp (diff)llvm.src/lib/Target/RISCV/MCTargetDesc/RISCVAsmBackend.cpp
The file was modified/llvm/trunk/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp (diff)llvm.src/lib/Target/RISCV/MCTargetDesc/RISCVELFObjectWriter.cpp
The file was modified/llvm/trunk/test/CodeGen/RISCV/fixups-relax-diff.ll (diff)llvm.src/test/CodeGen/RISCV/fixups-relax-diff.ll
The file was modified/llvm/trunk/test/DebugInfo/RISCV/dwarf-riscv-relocs.ll (diff)llvm.src/test/DebugInfo/RISCV/dwarf-riscv-relocs.ll
The file was added/llvm/trunk/test/DebugInfo/RISCV/relax-debug-frame.llllvm.src/test/DebugInfo/RISCV/relax-debug-frame.ll
The file was modified/llvm/trunk/test/MC/RISCV/fde-reloc.s (diff)llvm.src/test/MC/RISCV/fde-reloc.s
The file was modified/llvm/trunk/tools/dsymutil/DwarfLinker.cpp (diff)llvm.src/tools/dsymutil/DwarfLinker.cpp
Revision 366441 by rksimon:
[X86] EltsFromConsecutiveLoads - support common source loads

This patch enables us to find the source loads for each element, splitting them into a Load and ByteOffset, and attempts to recognise consecutive loads that are in fact from the same source load.

A helper function, findEltLoadSrc, recurses to find a LoadSDNode and determines the element's byte offset within it. When attempting to match consecutive loads, byte offsetted loads then attempt to matched against a previous load that has already been confirmed to be a consecutive match.

Next step towards PR16739 - after this we just need to account for shuffling/repeated elements to create a vector load + shuffle.

Differential Revision: https://reviews.llvm.org/D64551
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/clear_upper_vector_element_bits.ll (diff)llvm.src/test/CodeGen/X86/clear_upper_vector_element_bits.ll
The file was modified/llvm/trunk/test/CodeGen/X86/load-partial.ll (diff)llvm.src/test/CodeGen/X86/load-partial.ll
Revision 366439 by martong:
[analyzer] Add CTU user docs

Reviewers: dkrupp, a_sidorin, Szelethus, NoQ

Subscribers: whisperity, xazax.hun, baloghadamsoftware, szepet, rnkovacs, a.sidorin, mikhail.ramalho, donat.nagy, gamesh411, Charusso, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64801
Change TypePath in RepositoryPath in Workspace
The file was added/cfe/trunk/docs/analyzer/user-docsclang.src/docs/analyzer/user-docs
The file was modified/cfe/trunk/docs/analyzer/user-docs.rst (diff)clang.src/docs/analyzer/user-docs.rst
The file was added/cfe/trunk/docs/analyzer/user-docs/CrossTranslationUnit.rstclang.src/docs/analyzer/user-docs/CrossTranslationUnit.rst
Revision 366437 by abataev:
[OPENMP][NVPTX]Mark barrier functions calls as convergent.

Added convergent attribute to the barrier functions calls for correct
optimizations.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp (diff)clang.src/lib/CodeGen/CGOpenMPRuntimeNVPTX.cpp
The file was modified/cfe/trunk/test/OpenMP/nvptx_parallel_codegen.cpp (diff)clang.src/test/OpenMP/nvptx_parallel_codegen.cpp
Revision 366436 by serge_sans_paille:
Restrict asan + dlopen testcase to x86
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/asan/TestCases/Linux/dlopen-mixed-c-cxx.c (diff)compiler-rt.src/test/asan/TestCases/Linux/dlopen-mixed-c-cxx.c
Revision 366435 by rksimon:
[DAGCombine] Pull getSubVectorSrc helper out of narrowInsertExtractVectorBinOp. NFCI.

NFC step towards reusing this in other EXTRACT_SUBVECTOR combines.
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
Revision 366434 by thopre:
[FileCheck] Fix numeric variable redefinition

Summary:
Commit r365249 changed usage of FileCheckNumericVariable to have one
instance of that class per variable as opposed to one instance per
definition of a given variable as was done before. However, it retained
the safety check in setValue that it should only be called with the
variable unset, even after r365625.

However this causes assert failure when a non-pseudo variable is being
redefined. And while redefinition of @LINE at each CHECK line work in
the general case, it caused problem when a substitution failed (fixed in
r365624) and still causes problem when a CHECK line does not match since
@LINE's value is cleared after substitutions in match() happened but
printSubstitutions also attempts a substitution.

This commit solves the root of the problem by changing setValue to set a
new value regardless of whether a value was set or not, thus fixing all
the aforementioned issues.

Reviewers: jhenderson, chandlerc, jdenny, probinson, grimar, arichardson, rnk

Subscribers: hiraditya, llvm-commits, probinson, dblaikie, grimar, arichardson, tra, rnk, kristina, hfinkel, rogfer01, JonChesterfield

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64882
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Support/FileCheck.h (diff)llvm.src/include/llvm/Support/FileCheck.h
The file was modified/llvm/trunk/lib/Support/FileCheck.cpp (diff)llvm.src/lib/Support/FileCheck.cpp
The file was modified/llvm/trunk/test/FileCheck/line-count.txt (diff)llvm.src/test/FileCheck/line-count.txt
The file was modified/llvm/trunk/test/FileCheck/numeric-expression.txt (diff)llvm.src/test/FileCheck/numeric-expression.txt
The file was modified/llvm/trunk/unittests/Support/FileCheckTest.cpp (diff)llvm.src/unittests/Support/FileCheckTest.cpp
Revision 366432 by serge_sans_paille:
Relax regexp to detect failed interception by asan

This should fix failed detection on aarch64/ppc64/thumbv8...
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/asan/TestCases/Linux/dlopen-mixed-c-cxx.c (diff)compiler-rt.src/test/asan/TestCases/Linux/dlopen-mixed-c-cxx.c
Revision 366431 by spatel:
[x86] try harder to form LEA from ADD to avoid flag conflicts (PR40483)

LEA doesn't affect flags, so use it more liberally to replace an ADD when
we know that the ADD operands affect flags.

In the motivating example from PR40483:
https://bugs.llvm.org/show_bug.cgi?id=40483
...this lets us avoid duplicating a math op just to avoid flag conflict.

As mentioned in the TODO comments, this heuristic can be extended to
fire more often if that leads to more improvements.

Differential Revision: https://reviews.llvm.org/D64707
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/X86/X86ISelDAGToDAG.cpp (diff)llvm.src/lib/Target/X86/X86ISelDAGToDAG.cpp
The file was modified/llvm/trunk/test/CodeGen/X86/combine-sbb.ll (diff)llvm.src/test/CodeGen/X86/combine-sbb.ll
Revision 366430 by grimar:
[llvm-readelf] - Remove the precompiled binary from gnu-hash-symbols.test

I am working on https://bugs.llvm.org/show_bug.cgi?id=42622
and this patch reworks the gnu-hash-symbols.test so that it
will be easier to expand it with x86_64 case.

Differential revision: https://reviews.llvm.org/D64750
Change TypePath in RepositoryPath in Workspace
The file was removed/llvm/trunk/test/tools/llvm-readobj/Inputs/dynamic-table-exe.x86llvm.src/test/tools/llvm-readobj/Inputs/dynamic-table-exe.x86
The file was added/llvm/trunk/test/tools/llvm-readobj/elf-hash-symbols.testllvm.src/test/tools/llvm-readobj/elf-hash-symbols.test
The file was removed/llvm/trunk/test/tools/llvm-readobj/gnu-hash-symbols.testllvm.src/test/tools/llvm-readobj/gnu-hash-symbols.test
Revision 366429 by ibiryukov:
Revert r366422: [OpenCL] Improve destructor support in C++ for OpenCL

Reason: this commit causes crashes in the clang compiler when building
LLVM Support with libc++, see https://bugs.llvm.org/show_bug.cgi?id=42665
for details.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/DeclCXX.h (diff)clang.src/include/clang/AST/DeclCXX.h
The file was modified/cfe/trunk/lib/AST/DeclCXX.cpp (diff)clang.src/lib/AST/DeclCXX.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGCXXABI.h (diff)clang.src/lib/CodeGen/CGCXXABI.h
The file was modified/cfe/trunk/lib/CodeGen/CGCall.cpp (diff)clang.src/lib/CodeGen/CGCall.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGClass.cpp (diff)clang.src/lib/CodeGen/CGClass.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGDecl.cpp (diff)clang.src/lib/CodeGen/CGDecl.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGExprCXX.cpp (diff)clang.src/lib/CodeGen/CGExprCXX.cpp
The file was modified/cfe/trunk/lib/CodeGen/CodeGenFunction.h (diff)clang.src/lib/CodeGen/CodeGenFunction.h
The file was modified/cfe/trunk/lib/CodeGen/ItaniumCXXABI.cpp (diff)clang.src/lib/CodeGen/ItaniumCXXABI.cpp
The file was modified/cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp (diff)clang.src/lib/CodeGen/MicrosoftCXXABI.cpp
The file was modified/cfe/trunk/lib/Sema/SemaDeclCXX.cpp (diff)clang.src/lib/Sema/SemaDeclCXX.cpp
The file was modified/cfe/trunk/lib/Sema/SemaOverload.cpp (diff)clang.src/lib/Sema/SemaOverload.cpp
The file was added/cfe/trunk/test/CodeGenOpenCLCXX/addrspace-ctor.clclang.src/test/CodeGenOpenCLCXX/addrspace-ctor.cl
The file was removed/cfe/trunk/test/CodeGenOpenCLCXX/addrspace-with-class.clclang.src/test/CodeGenOpenCLCXX/addrspace-with-class.cl
Revision 366427 by hans:
Bump the trunk version to 10.0.0svn

and clear the release notes.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/docs/ReleaseNotes.rst (diff)clang.src/docs/ReleaseNotes.rst
The file was modified/cfe/trunk/docs/conf.py (diff)clang.src/docs/conf.py
The file was modified/clang-tools-extra/trunk/docs/ReleaseNotes.rst (diff)clang-tools-extra.src/docs/ReleaseNotes.rst
The file was modified/clang-tools-extra/trunk/docs/conf.py (diff)clang-tools-extra.src/docs/conf.py
The file was modified/libcxx/trunk/CMakeLists.txt (diff)libcxx.src/CMakeLists.txt
The file was modified/libcxx/trunk/docs/ReleaseNotes.rst (diff)libcxx.src/docs/ReleaseNotes.rst
The file was modified/libcxx/trunk/docs/conf.py (diff)libcxx.src/docs/conf.py
The file was modified/libcxx/trunk/include/__config (diff)libcxx.src/include/__config
The file was modified/libcxx/trunk/include/__libcpp_version (diff)libcxx.src/include/__libcpp_version
The file was modified/libunwind/trunk/CMakeLists.txt (diff)N/A
The file was modified/libunwind/trunk/docs/conf.py (diff)N/A
The file was modified/lld/trunk/docs/ReleaseNotes.rst (diff)lld.src/docs/ReleaseNotes.rst
The file was modified/lld/trunk/docs/conf.py (diff)lld.src/docs/conf.py
The file was modified/llvm/trunk/CMakeLists.txt (diff)llvm.src/CMakeLists.txt
The file was modified/llvm/trunk/docs/ReleaseNotes.rst (diff)llvm.src/docs/ReleaseNotes.rst
The file was modified/llvm/trunk/docs/conf.py (diff)llvm.src/docs/conf.py
The file was modified/llvm/trunk/utils/gn/secondary/llvm/version.gni (diff)llvm.src/utils/gn/secondary/llvm/version.gni
The file was modified/llvm/trunk/utils/release/build_llvm_package.bat (diff)llvm.src/utils/release/build_llvm_package.bat
The file was modified/polly/trunk/docs/ReleaseNotes.rst (diff)polly.src/docs/ReleaseNotes.rst
The file was modified/polly/trunk/docs/conf.py (diff)polly.src/docs/conf.py
The file was modified/pstl/trunk/docs/ReleaseNotes.rst (diff)N/A
The file was modified/pstl/trunk/include/pstl/internal/pstl_config.h (diff)N/A
Revision 366424 by maskray:
[ELF][PPC] Refactor some ppc64 tests

Merge ppc64-dynamic-relocations.s into ppc64-plt-stub.s
Add ppc64-tls-ie.s: covers ppc64-initial-exec-tls.s and ppc64-tls-ie-le.s
Add ppc64-tls-gd.s: covers ppc64-general-dynamic-tls.s, ppc64-gd-to-ie.s, ppc64-tls-gd-le.s, and ppc64-tls-gd-le-small.s
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/ELF/Arch/PPC64.cpp (diff)lld.src/ELF/Arch/PPC64.cpp
The file was removed/lld/trunk/test/ELF/ppc64-gd-to-ie.slld.src/test/ELF/ppc64-gd-to-ie.s
The file was removed/lld/trunk/test/ELF/ppc64-general-dynamic-tls.slld.src/test/ELF/ppc64-general-dynamic-tls.s
The file was removed/lld/trunk/test/ELF/ppc64-initial-exec-tls.slld.src/test/ELF/ppc64-initial-exec-tls.s
The file was modified/lld/trunk/test/ELF/ppc64-plt-stub.s (diff)lld.src/test/ELF/ppc64-plt-stub.s
The file was removed/lld/trunk/test/ELF/ppc64-tls-gd-le-small.slld.src/test/ELF/ppc64-tls-gd-le-small.s
The file was removed/lld/trunk/test/ELF/ppc64-tls-gd-le.slld.src/test/ELF/ppc64-tls-gd-le.s
The file was added/lld/trunk/test/ELF/ppc64-tls-gd.slld.src/test/ELF/ppc64-tls-gd.s
The file was removed/lld/trunk/test/ELF/ppc64-tls-ie-le.slld.src/test/ELF/ppc64-tls-ie-le.s
The file was added/lld/trunk/test/ELF/ppc64-tls-ie.slld.src/test/ELF/ppc64-tls-ie.s
Revision 366423 by dnsampaio:
[ARM][DAGCOMBINE][FIX] PerformVMOVRRDCombine

Summary:
PerformVMOVRRDCombine ommits adding a offset
of 4 to the PointerInfo, when converting a
f64 = load[M]
to
{i32, i32} = {load[M], load[M + 4]}

Which would allow the machine scheduller
to break dependencies with the second load.

- pr42638

Reviewers: eli.friedman, dmgreen, ostannard

Reviewed By: ostannard

Subscribers: ostannard, javed.absar, kristof.beyls, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64870
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp (diff)llvm.src/lib/Target/ARM/ARMISelLowering.cpp
The file was added/llvm/trunk/test/CodeGen/ARM/pr42638-VMOVRRDCombine.llllvm.src/test/CodeGen/ARM/pr42638-VMOVRRDCombine.ll
Revision 366422 by mantognini:
[OpenCL] Improve destructor support in C++ for OpenCL

Summary:
This patch does mainly three things:
1. It fixes a false positive error detection in Sema that is similar to
    D62156. The error happens when explicitly calling an overloaded
    destructor for different address spaces.
2. It selects the correct destructor when multiple overloads for
    address spaces are available.
3. It inserts the expected address space cast when invoking a
    destructor, if needed, and therefore fixes a crash due to the unmet
    assertion in llvm::CastInst::Create.

The following is a reproducer of the three issues:

    struct MyType {
      ~MyType() {}
      ~MyType() __constant {}
    };

    __constant MyType myGlobal{};

    kernel void foo() {
      myGlobal.~MyType(); // 1 and 2.
      // 1. error: cannot initialize object parameter of type
      //    '__generic MyType' with an expression of type '__constant MyType'
      // 2. error: no matching member function for call to '~MyType'
    }

    kernel void bar() {
      // 3. The implicit call to the destructor crashes due to:
      //    Assertion `castIsValid(op, S, Ty) && "Invalid cast!"' failed.
      //    in llvm::CastInst::Create.
      MyType myLocal;
    }

The added test depends on D62413 and covers a few more things than the
above reproducer.

Subscribers: yaxunl, Anastasia, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64569
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/AST/DeclCXX.h (diff)clang.src/include/clang/AST/DeclCXX.h
The file was modified/cfe/trunk/lib/AST/DeclCXX.cpp (diff)clang.src/lib/AST/DeclCXX.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGCXXABI.h (diff)clang.src/lib/CodeGen/CGCXXABI.h
The file was modified/cfe/trunk/lib/CodeGen/CGCall.cpp (diff)clang.src/lib/CodeGen/CGCall.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGClass.cpp (diff)clang.src/lib/CodeGen/CGClass.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGDecl.cpp (diff)clang.src/lib/CodeGen/CGDecl.cpp
The file was modified/cfe/trunk/lib/CodeGen/CGExprCXX.cpp (diff)clang.src/lib/CodeGen/CGExprCXX.cpp
The file was modified/cfe/trunk/lib/CodeGen/CodeGenFunction.h (diff)clang.src/lib/CodeGen/CodeGenFunction.h
The file was modified/cfe/trunk/lib/CodeGen/ItaniumCXXABI.cpp (diff)clang.src/lib/CodeGen/ItaniumCXXABI.cpp
The file was modified/cfe/trunk/lib/CodeGen/MicrosoftCXXABI.cpp (diff)clang.src/lib/CodeGen/MicrosoftCXXABI.cpp
The file was modified/cfe/trunk/lib/Sema/SemaDeclCXX.cpp (diff)clang.src/lib/Sema/SemaDeclCXX.cpp
The file was modified/cfe/trunk/lib/Sema/SemaOverload.cpp (diff)clang.src/lib/Sema/SemaOverload.cpp
The file was removed/cfe/trunk/test/CodeGenOpenCLCXX/addrspace-ctor.clclang.src/test/CodeGenOpenCLCXX/addrspace-ctor.cl
The file was added/cfe/trunk/test/CodeGenOpenCLCXX/addrspace-with-class.clclang.src/test/CodeGenOpenCLCXX/addrspace-with-class.cl
Revision 366421 by stulova:
[OpenCL] Update comments/diagnostics to refer to C++ for OpenCL

Clang doesn't implement OpenCL C++, change the comments to
reflect that.

Differential Revision: https://reviews.llvm.org/D64867
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticCommonKinds.td (diff)clang.src/include/clang/Basic/DiagnosticCommonKinds.td
The file was modified/cfe/trunk/include/clang/Basic/DiagnosticParseKinds.td (diff)clang.src/include/clang/Basic/DiagnosticParseKinds.td
The file was modified/cfe/trunk/include/clang/Basic/LangOptions.def (diff)clang.src/include/clang/Basic/LangOptions.def
The file was modified/cfe/trunk/include/clang/Basic/TokenKinds.def (diff)clang.src/include/clang/Basic/TokenKinds.def
The file was modified/cfe/trunk/include/clang/Frontend/LangStandards.def (diff)clang.src/include/clang/Frontend/LangStandards.def
The file was modified/cfe/trunk/lib/Frontend/InitPreprocessor.cpp (diff)clang.src/lib/Frontend/InitPreprocessor.cpp
The file was modified/cfe/trunk/lib/Parse/ParseDecl.cpp (diff)clang.src/lib/Parse/ParseDecl.cpp
The file was modified/cfe/trunk/lib/Sema/DeclSpec.cpp (diff)clang.src/lib/Sema/DeclSpec.cpp
The file was modified/cfe/trunk/lib/Sema/SemaCast.cpp (diff)clang.src/lib/Sema/SemaCast.cpp
The file was modified/cfe/trunk/lib/Sema/SemaDecl.cpp (diff)clang.src/lib/Sema/SemaDecl.cpp
The file was modified/cfe/trunk/lib/Sema/SemaDeclCXX.cpp (diff)clang.src/lib/Sema/SemaDeclCXX.cpp
The file was modified/cfe/trunk/lib/Sema/SemaExprCXX.cpp (diff)clang.src/lib/Sema/SemaExprCXX.cpp
The file was modified/cfe/trunk/test/Driver/unknown-std.cl (diff)clang.src/test/Driver/unknown-std.cl
The file was modified/cfe/trunk/test/Parser/opencl-cxx-keywords.cl (diff)clang.src/test/Parser/opencl-cxx-keywords.cl
The file was modified/cfe/trunk/test/Parser/opencl-cxx-virtual.cl (diff)clang.src/test/Parser/opencl-cxx-virtual.cl
The file was modified/cfe/trunk/test/SemaOpenCLCXX/newdelete.cl (diff)clang.src/test/SemaOpenCLCXX/newdelete.cl
The file was modified/cfe/trunk/test/SemaOpenCLCXX/restricted.cl (diff)clang.src/test/SemaOpenCLCXX/restricted.cl
Revision 366420 by jvikstrom:
[clangd] Added highlightings for template parameters and specializations.

Summary: Template parameters and specializations were not being highlighted before. This adds highlightings to those types of tokens by adding two Visit* methods.

Reviewers: hokein, sammccall, ilya-biryukov

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64855
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/SemanticHighlighting.cpp (diff)clang-tools-extra.src/clangd/SemanticHighlighting.cpp
The file was modified/clang-tools-extra/trunk/clangd/SemanticHighlighting.h (diff)clang-tools-extra.src/clangd/SemanticHighlighting.h
The file was modified/clang-tools-extra/trunk/clangd/test/semantic-highlighting.test (diff)clang-tools-extra.src/clangd/test/semantic-highlighting.test
The file was modified/clang-tools-extra/trunk/clangd/unittests/SemanticHighlightingTests.cpp (diff)clang-tools-extra.src/clangd/unittests/SemanticHighlightingTests.cpp
Revision 366419 by shchenz:
[SCEV] add no wrap flag for SCEVAddExpr.
Differential Revision: https://reviews.llvm.org/D64868
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/ScalarEvolution.cpp (diff)llvm.src/lib/Analysis/ScalarEvolution.cpp
The file was modified/llvm/trunk/test/Analysis/ScalarEvolution/limit-depth.ll (diff)llvm.src/test/Analysis/ScalarEvolution/limit-depth.ll
The file was modified/llvm/trunk/test/Analysis/ScalarEvolution/nsw.ll (diff)llvm.src/test/Analysis/ScalarEvolution/nsw.ll
The file was modified/llvm/trunk/test/Analysis/ScalarEvolution/trip-count12.ll (diff)llvm.src/test/Analysis/ScalarEvolution/trip-count12.ll
The file was modified/llvm/trunk/test/Analysis/ScalarEvolution/trip-count9.ll (diff)llvm.src/test/Analysis/ScalarEvolution/trip-count9.ll
Revision 366418 by chrisj:
[lld] Fix vs-diagnostics-version-script test. NFC.

Removed unnecessary llvm-mc call.
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/test/ELF/vs-diagnostics-versionscript.s (diff)lld.src/test/ELF/vs-diagnostics-versionscript.s
Revision 366417 by stulova:
[OpenCL][PR42033] Fix addr space deduction with template parameters

If dependent types appear in pointers or references we allow addr
space deduction because the addr space in template argument will
belong to the pointee and not the pointer or reference itself.

We also don't diagnose addr space on a function return type after
template instantiation. If any addr space for the return type was
provided on a template parameter this will be diagnosed during the
parsing of template definition.

Differential Revision: https://reviews.llvm.org/D62584
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaDecl.cpp (diff)clang.src/lib/Sema/SemaDecl.cpp
The file was modified/cfe/trunk/lib/Sema/SemaType.cpp (diff)clang.src/lib/Sema/SemaType.cpp
The file was modified/cfe/trunk/lib/Sema/TreeTransform.h (diff)clang.src/lib/Sema/TreeTransform.h
The file was modified/cfe/trunk/test/SemaOpenCLCXX/address-space-deduction.cl (diff)clang.src/test/SemaOpenCLCXX/address-space-deduction.cl
The file was modified/cfe/trunk/test/SemaOpenCLCXX/address-space-templates.cl (diff)clang.src/test/SemaOpenCLCXX/address-space-templates.cl
Revision 366416 by rovka:
Fixup r366333 (require x86 in test)

Seems to be required for the other added tests too.
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/test/ELF/vs-diagnostics-versionscript.s (diff)lld.src/test/ELF/vs-diagnostics-versionscript.s
Revision 366413 by serge_sans_paille:
Fix asan infinite loop on undefined symbol

Fix llvm#39641

Differential Revision: https://reviews.llvm.org/D63877
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/interception/interception_linux.cc (diff)compiler-rt.src/lib/interception/interception_linux.cc
The file was added/compiler-rt/trunk/test/asan/TestCases/Linux/dlopen-mixed-c-cxx.ccompiler-rt.src/test/asan/TestCases/Linux/dlopen-mixed-c-cxx.c
Revision 366412 by asb:
[RISCV] Reset NoPHIS MachineFunctionProperty in emitSelectPseudo

We insered PHIS were there were none before, so the property must be
reset. This error was found on an EXPENSIVE_CHECKS build.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/RISCV/RISCVISelLowering.cpp (diff)llvm.src/lib/Target/RISCV/RISCVISelLowering.cpp
Revision 366411 by skatkov:
[LoopInfo] Use early return in branch weight update functions. NFC.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Utils/LoopUnrollPeel.cpp (diff)llvm.src/lib/Transforms/Utils/LoopUnrollPeel.cpp
Revision 366410 by asb:
[RISCV][DebugInfo] Fix dwarf-riscv-relocs.ll test on Windows

Windows sees DW_AT_decl_file (".\dwarf-riscv-relocs.c") while Linux sees
DW_AT_decl_file ("./dwarf-riscv-relocs.c").

This fixes a failure introduced in rL366402.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/DebugInfo/RISCV/dwarf-riscv-relocs.ll (diff)llvm.src/test/DebugInfo/RISCV/dwarf-riscv-relocs.ll
Revision 366409 by sammccall:
[CodeComplete] Fix ASTUnit cached completion of macros from preamble, broken in r342528

Summary:
The problem is the default LoadExternal with no completer, which happens when
loading global results.

Reviewers: ilya-biryukov, nik

Subscribers: arphaman, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64864
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaCodeComplete.cpp (diff)clang.src/lib/Sema/SemaCodeComplete.cpp
The file was modified/cfe/trunk/test/Index/complete-macros.c (diff)clang.src/test/Index/complete-macros.c
The file was modified/cfe/trunk/test/Index/complete-macros.h (diff)clang.src/test/Index/complete-macros.h
Revision 366408 by hans:
clang-tidy release notes: Split and order changes by type

Patch by Eugene Zelenko!
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/docs/ReleaseNotes.rst (diff)clang-tools-extra.src/docs/ReleaseNotes.rst
Revision 366407 by zhangkang:
[NFC][PowerPC] Add the test to test the pass block-placement
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/CodeGen/PowerPC/block-placement-1.mirllvm.src/test/CodeGen/PowerPC/block-placement-1.mir
The file was modified/llvm/trunk/test/CodeGen/PowerPC/block-placement.mir (diff)llvm.src/test/CodeGen/PowerPC/block-placement.mir
Revision 366406 by chaofan:
[PowerPC][Clang] Remove use of malloc in mm_malloc

Remove dependency of malloc in implementation of mm_malloc function in PowerPC
intrinsics and alignment assumption on glibc.

Reviewed By: Hal Finkel

Differential Revision: https://reviews.llvm.org/D64850
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Headers/ppc_wrappers/mm_malloc.h (diff)clang.src/lib/Headers/ppc_wrappers/mm_malloc.h
The file was modified/cfe/trunk/test/CodeGen/ppc-mm-malloc-le.c (diff)clang.src/test/CodeGen/ppc-mm-malloc-le.c
The file was modified/cfe/trunk/test/CodeGen/ppc-mm-malloc.c (diff)clang.src/test/CodeGen/ppc-mm-malloc.c
Revision 366405 by ctopper:
[X86] Disable combineConcatVectors for vXi1 vectors.

I'm not convinced the code this calls is properly vetted for
vXi1 vectors. Experimental vector widening legalization testing
for D55251 is now hitting an assertion failure inside
EltsFromConsecutiveLoads. This is occurring from a v2i1 load
having a store size different than its VT size. Hopefully
this commit will keep such issues from happening.
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/avx512vl-intrinsics-upgrade.ll (diff)llvm.src/test/CodeGen/X86/avx512vl-intrinsics-upgrade.ll
Revision 366403 by lanza:
Fix typo in programmer's manual cantFile -> cantFail
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/ProgrammersManual.rst (diff)llvm.src/docs/ProgrammersManual.rst
Revision 366402 by asb:
[DWARF][RISCV] Add support for RISC-V relocations needed for debug info

When code relaxation is enabled many RISC-V fixups are not resolved but
instead relocations are emitted. This happens even for DWARF debug
sections. Therefore, to properly support the parsing of DWARF debug info
we need to be able to resolve RISC-V relocations. This patch adds:

* Support for RISC-V relocations in RelocationResolver
* DWARF support for two relocations per object file offset
* DWARF changes to support relocations in more DIE fields

The two relocations per offset change is needed because some RISC-V
relocations (used for label differences) come in pairs.

Relocations can also be emitted for DWARF fields where relocations were
not yet evaluated. Adding relocation support for some of these fields is
essencial. On the other hand, LLVM currently emits RISC-V relocations
for fixups that could be safely evaluated, since they can never be
affected by code relaxations. This patch also adds relocation support
for the fields affected by those extraneous relocations (the DWARF unit
entry Length, and the DWARF debug line entry TotalLength and
PrologueLength), for testing purposes.

Differential Revision: https://reviews.llvm.org/D62062
Patch by Luís Marques.
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/ELF/DWARF.cpp (diff)lld.src/ELF/DWARF.cpp
The file was modified/llvm/trunk/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h (diff)llvm.src/include/llvm/DebugInfo/DWARF/DWARFRelocMap.h
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFContext.cpp (diff)llvm.src/lib/DebugInfo/DWARF/DWARFContext.cpp
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp (diff)llvm.src/lib/DebugInfo/DWARF/DWARFDataExtractor.cpp
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFDebugLine.cpp (diff)llvm.src/lib/DebugInfo/DWARF/DWARFDebugLine.cpp
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFFormValue.cpp (diff)llvm.src/lib/DebugInfo/DWARF/DWARFFormValue.cpp
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFListTable.cpp (diff)llvm.src/lib/DebugInfo/DWARF/DWARFListTable.cpp
The file was modified/llvm/trunk/lib/DebugInfo/DWARF/DWARFUnit.cpp (diff)llvm.src/lib/DebugInfo/DWARF/DWARFUnit.cpp
The file was modified/llvm/trunk/lib/Object/RelocationResolver.cpp (diff)llvm.src/lib/Object/RelocationResolver.cpp
The file was added/llvm/trunk/test/DebugInfo/RISCV/dwarf-riscv-relocs.llllvm.src/test/DebugInfo/RISCV/dwarf-riscv-relocs.ll
Revision 366401 by maskray:
[ELF][test] Merge/rename some basic*.s tests

basic64be.s is a big-endian powerpc64 test that just duplicates what
basic-ppc64.s does. Extend basic-ppc64.s to add big-endian tests.
Delete basic64be.s

Rename basic32.s to basic-i386.s
Change TypePath in RepositoryPath in Workspace
The file was added/lld/trunk/test/ELF/basic-i386.slld.src/test/ELF/basic-i386.s
The file was modified/lld/trunk/test/ELF/basic-ppc64.s (diff)lld.src/test/ELF/basic-ppc64.s
The file was removed/lld/trunk/test/ELF/basic32.slld.src/test/ELF/basic32.s
The file was removed/lld/trunk/test/ELF/basic64be.slld.src/test/ELF/basic64be.s
Revision 366400 by maskray:
[clangd] Fix Fix -Wunused-lambda-capture after r366339
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/QueryDriverDatabase.cpp (diff)clang-tools-extra.src/clangd/QueryDriverDatabase.cpp
Revision 366399 by asb:
[RISCV] Re-land r366331 d RISCV to LLVM_ALL_TARGETS

*San flagged issues should be now be addressed.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/CMakeLists.txt (diff)llvm.src/CMakeLists.txt
Revision 366398 by asb:
[RISCV] Avoid signed integer overflow UB in RISCVMatInt::generateInstSeq

Found by UBSan.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/RISCV/Utils/RISCVMatInt.cpp (diff)llvm.src/lib/Target/RISCV/Utils/RISCVMatInt.cpp
Revision 366397 by asb:
[RISCV] Don't acccess an invalidated iterator in RISCVInstrInfo::removeBranch

Issue found by ASan.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/RISCV/RISCVInstrInfo.cpp (diff)llvm.src/lib/Target/RISCV/RISCVInstrInfo.cpp
Revision 366396 by maskray:
[AArch64] Add dependency from AArch64CodeGen to TransformUtils to fix -DBUILD_SHARED_LIBS=on link error after D64173/r366361

This fixes:

ld.lld: error: undefined symbol: llvm::findAllocaForValue(llvm::Value*, llvm::DenseMap<llvm::Value*, llvm::Alloc aInst*, llvm::DenseMapInfo<llvm::Value*>, llvm::detail::DenseMapPair<llvm::Value*, llvm::AllocaInst*> >&)
>>> referenced by AArch64StackTagging.cpp
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/LLVMBuild.txt (diff)llvm.src/lib/Target/AArch64/LLVMBuild.txt
Revision 366393 by reames:
[Tests] Add a test showing how we handle overaligned allocas w/ no-realign-stack

(At the moment, we ignore the alignment requirement.)
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/CodeGen/X86/alloca-overaligned.llllvm.src/test/CodeGen/X86/alloca-overaligned.ll
Revision 366391 by charusso:
[analyzer] MallocChecker: Prevent Integer Set Library false positives

Summary:
Integer Set Library using retain-count based allocation which is not
modeled in MallocChecker.

Reviewed By: NoQ

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64680
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/StaticAnalyzer/Checkers/MallocChecker.cpp (diff)clang.src/lib/StaticAnalyzer/Checkers/MallocChecker.cpp
The file was added/cfe/trunk/test/Analysis/retain-count-alloc.cppclang.src/test/Analysis/retain-count-alloc.cpp
Revision 366390 by nilanjana_basu:
Changes to display code view debug info type records in hex format
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/MC/MCExpr.h (diff)llvm.src/include/llvm/MC/MCExpr.h
The file was modified/llvm/trunk/include/llvm/MC/MCStreamer.h (diff)llvm.src/include/llvm/MC/MCStreamer.h
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp (diff)llvm.src/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
The file was modified/llvm/trunk/lib/DebugInfo/CodeView/TypeRecordMapping.cpp (diff)llvm.src/lib/DebugInfo/CodeView/TypeRecordMapping.cpp
The file was modified/llvm/trunk/lib/MC/MCAsmStreamer.cpp (diff)llvm.src/lib/MC/MCAsmStreamer.cpp
The file was modified/llvm/trunk/lib/MC/MCExpr.cpp (diff)llvm.src/lib/MC/MCExpr.cpp
The file was modified/llvm/trunk/test/DebugInfo/COFF/types-basic.ll (diff)llvm.src/test/DebugInfo/COFF/types-basic.ll
Revision 366389 by pcc:
hwasan: Use C++ driver for cfi.cc test.

It turns out that this test was only passing by accident. It was relying on
the optimizer to remove the only reference to A's vtable by realizing that
the CFI check will always fail. The vtable contains a reference to RTTI in
libc++, which will be unresolved because the C driver won't link against it.

This was found by my prototype implementation of HWASAN for globals, which
happens to end up preserving the reference.

Differential Revision: https://reviews.llvm.org/D64890
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/test/hwasan/TestCases/cfi.cc (diff)compiler-rt.src/test/hwasan/TestCases/cfi.cc
Revision 366388 by eugenis:
Make DT a transitive dependency of LI.

Summary:
LoopInfoWrapperPass::verify uses DT, which means DT must be alive
even if it has no direct users.

Fixes a crash in expensive checks mode.

Reviewers: pcc, leonardchan

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64896
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Analysis/LoopInfo.cpp (diff)llvm.src/lib/Analysis/LoopInfo.cpp
Revision 366387 by dendibakh:
[llvm-bcanalyzer] Fixed error 'Expected<T> must be checked before access or destruction'

After rL365286 I had failing test:
  LLVM :: tools/gold/X86/v1.12/thinlto_emit_linked_objects.ll

It was failing with the output:
$ llvm-bcanalyzer --dump llvm/test/tools/gold/X86/v1.12/Output/thinlto_emit_linked_objects.ll.tmp3.o.thinlto.bc
Expected<T> must be checked before access or destruction.
Unchecked Expected<T> contained error:
Unexpected end of file reading 0 of 0 bytesStack dump:

Change-Id: I07e03262074ea5e0aae7a8d787d5487c87f914a2
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Bitcode/Reader/BitcodeAnalyzer.cpp (diff)llvm.src/lib/Bitcode/Reader/BitcodeAnalyzer.cpp
Revision 366386 by nico:
llvm-pdbdump: Fix several smaller issues with injected source compression handling

- getCompression() used to return a PDB_SourceCompression even though
  the docs for IDiaInjectedSource are explicit about the return value
  being compiler-dependent. Return an uint32_t instead, and make the
  printing code handle unknown values better by printing "Unknown" and
  the int value instead of not printing any compression.

- Print compressed contents as hex dump, not as string.

- Add compression type "DotNet", which is used (at least) by csc.exe,
  the C# compiler. Also add a lengthy comment describing the stream
  contents (derived from looking at the raw hex contents long enough
  to see the GUIDs, which led me to the roslyn and mono implementations
  for handling this).

- The native injected source dumper was dumping the contents of the
  whole data stream -- but csc.exe writes a stream that's padded with
  zero bytes to the next 512 boundary, and the dia api doesn't display
  those padding bytes. So make NativeInjectedSource::getCode() do the
  same thing.

Differential Revision: https://reviews.llvm.org/D64879
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/DebugInfo/PDB/DIA/DIAInjectedSource.h (diff)llvm.src/include/llvm/DebugInfo/PDB/DIA/DIAInjectedSource.h
The file was modified/llvm/trunk/include/llvm/DebugInfo/PDB/IPDBInjectedSource.h (diff)llvm.src/include/llvm/DebugInfo/PDB/IPDBInjectedSource.h
The file was modified/llvm/trunk/include/llvm/DebugInfo/PDB/PDBExtras.h (diff)llvm.src/include/llvm/DebugInfo/PDB/PDBExtras.h
The file was modified/llvm/trunk/include/llvm/DebugInfo/PDB/PDBTypes.h (diff)llvm.src/include/llvm/DebugInfo/PDB/PDBTypes.h
The file was modified/llvm/trunk/lib/DebugInfo/PDB/DIA/DIAInjectedSource.cpp (diff)llvm.src/lib/DebugInfo/PDB/DIA/DIAInjectedSource.cpp
The file was modified/llvm/trunk/lib/DebugInfo/PDB/Native/NativeEnumInjectedSources.cpp (diff)llvm.src/lib/DebugInfo/PDB/Native/NativeEnumInjectedSources.cpp
The file was modified/llvm/trunk/lib/DebugInfo/PDB/PDBExtras.cpp (diff)llvm.src/lib/DebugInfo/PDB/PDBExtras.cpp
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/dotnet_contents_compressed.pdbllvm.src/test/tools/llvm-pdbutil/Inputs/dotnet_contents_compressed.pdb
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/dotnet_contents_uncompressed.pdbllvm.src/test/tools/llvm-pdbutil/Inputs/dotnet_contents_uncompressed.pdb
The file was added/llvm/trunk/test/tools/llvm-pdbutil/Inputs/dotnet_hashonly.pdbllvm.src/test/tools/llvm-pdbutil/Inputs/dotnet_hashonly.pdb
The file was modified/llvm/trunk/test/tools/llvm-pdbutil/injected-sources-native.test (diff)llvm.src/test/tools/llvm-pdbutil/injected-sources-native.test
The file was modified/llvm/trunk/test/tools/llvm-pdbutil/injected-sources.test (diff)llvm.src/test/tools/llvm-pdbutil/injected-sources.test
The file was modified/llvm/trunk/tools/llvm-pdbutil/LinePrinter.h (diff)llvm.src/tools/llvm-pdbutil/LinePrinter.h
The file was modified/llvm/trunk/tools/llvm-pdbutil/llvm-pdbutil.cpp (diff)llvm.src/tools/llvm-pdbutil/llvm-pdbutil.cpp
Revision 366385 by rampitec:
[AMDGPU] Simplify AMDGPUInstPrinter::printRegOperand()

Differential Revision: https://reviews.llvm.org/D64892
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp (diff)llvm.src/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIRegisterInfo.td (diff)llvm.src/lib/Target/AMDGPU/SIRegisterInfo.td
Revision 366384 by arsenm:
AMDGPU: Set inaccessiblememonly on sendmsg intrinsics
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicsAMDGPU.td (diff)llvm.src/include/llvm/IR/IntrinsicsAMDGPU.td
Revision 366382 by ctopper:
[X86] Make sure we mark 128/256 MLOAD as Legal with VLX when min-legal-vector-width=256 is in effect.

This started triggering an assertion after r364718 when we made
these Custom under AVX2.
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/min-legal-vector-width.ll (diff)llvm.src/test/CodeGen/X86/min-legal-vector-width.ll
Revision 366380 by pcc:
gn build: Merge r366361.
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 366379 by pcc:
hwasan: Initialize the pass only once.

This will let us instrument globals during initialization. This required
making the new PM pass a module pass, which should still provide access to
analyses via the ModuleAnalysisManager.

Differential Revision: https://reviews.llvm.org/D64843
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 modified/llvm/trunk/include/llvm/Transforms/Instrumentation/HWAddressSanitizer.h (diff)llvm.src/include/llvm/Transforms/Instrumentation/HWAddressSanitizer.h
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/HWAddressSanitizer.cpp (diff)llvm.src/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
The file was modified/llvm/trunk/test/Instrumentation/HWAddressSanitizer/basic.ll (diff)llvm.src/test/Instrumentation/HWAddressSanitizer/basic.ll
Revision 366377 by domada:
[NFC][ScopBuilder] Move buildSchedule and its callees to ScopBuilder or ScopHelper

Scope of changes:
1. Moved buildSchedule functions to ScopBuilder.
2. Moved combineInSequence function to ScopBuilder.
3. Moved mapToDimension function to ScopBuilder.
4. Moved LoopStackTy to ScopBuilder.
5. Moved getLoopSurroundingScop to ScopHelper.
6. Moved getNumBlocksInLoop to ScopHelper.
7. Moved getNumBlocksInRegionNode to ScopHelper.
8. Moved getRegionNodeLoop to ScopHelper.

Differential Revision: https://reviews.llvm.org/D64223
Change TypePath in RepositoryPath in Workspace
The file was modified/polly/trunk/include/polly/ScopBuilder.h (diff)polly.src/include/polly/ScopBuilder.h
The file was modified/polly/trunk/include/polly/ScopInfo.h (diff)polly.src/include/polly/ScopInfo.h
The file was modified/polly/trunk/include/polly/Support/ScopHelper.h (diff)polly.src/include/polly/Support/ScopHelper.h
The file was modified/polly/trunk/lib/Analysis/ScopBuilder.cpp (diff)polly.src/lib/Analysis/ScopBuilder.cpp
The file was modified/polly/trunk/lib/Analysis/ScopInfo.cpp (diff)polly.src/lib/Analysis/ScopInfo.cpp
The file was modified/polly/trunk/lib/Support/ScopHelper.cpp (diff)polly.src/lib/Support/ScopHelper.cpp
Revision 366376 by rampitec:
[AMDGPU] Stop special casing flat_scratch for register name

Differential Revision: https://reviews.llvm.org/D64885
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIRegisterInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/SIRegisterInfo.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIRegisterInfo.td (diff)llvm.src/lib/Target/AMDGPU/SIRegisterInfo.td
Revision 366375 by eugenis:
Speculative fix for stack-tagging.ll failure.

Depending on the evaluation order of function call arguments,
the current code may insert a use before def.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64StackTagging.cpp (diff)llvm.src/lib/Target/AArch64/AArch64StackTagging.cpp
Revision 366374 by domada:
[NFC][ScopBuilder]Move finalizeAccesses and its callees to ScopBuilder

Scope of changes:
1) Moved finalizeAccesses to ScopBuilder
2) Moved updateAccessDimensionality to ScopBuilder
3) Moved foldSizeConstantsToRight to ScopBuilder
4) Moved foldSizeConstantsToRight to ScopBuilder
5) Moved assumeNoOutOfBounds to ScopBuilder
6) Moved markFortranArrays to ScopBuilder
7) Added iterator range for AccessFunctions vector.

Differential Revision: https://reviews.llvm.org/D63794
Change TypePath in RepositoryPath in Workspace
The file was modified/polly/trunk/include/polly/ScopBuilder.h (diff)polly.src/include/polly/ScopBuilder.h
The file was modified/polly/trunk/include/polly/ScopInfo.h (diff)polly.src/include/polly/ScopInfo.h
The file was modified/polly/trunk/lib/Analysis/ScopBuilder.cpp (diff)polly.src/lib/Analysis/ScopBuilder.cpp
The file was modified/polly/trunk/lib/Analysis/ScopInfo.cpp (diff)polly.src/lib/Analysis/ScopInfo.cpp
Revision 366373 by uenoku:
[Attributor][NFC] Remove unnecessary debug output
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/IPO/Attributor.cpp (diff)llvm.src/lib/Transforms/IPO/Attributor.cpp
Revision 366372 by nilanjana_basu:
Adding inline comments to code view type record directives for better readability
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h (diff)llvm.src/include/llvm/DebugInfo/CodeView/CodeViewRecordIO.h
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp (diff)llvm.src/lib/CodeGen/AsmPrinter/CodeViewDebug.cpp
The file was modified/llvm/trunk/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp (diff)llvm.src/lib/DebugInfo/CodeView/CodeViewRecordIO.cpp
The file was modified/llvm/trunk/lib/DebugInfo/CodeView/TypeRecordMapping.cpp (diff)llvm.src/lib/DebugInfo/CodeView/TypeRecordMapping.cpp
The file was modified/llvm/trunk/test/DebugInfo/COFF/types-basic.ll (diff)llvm.src/test/DebugInfo/COFF/types-basic.ll
Revision 366371 by thegameg:
[PEI] Don't re-allocate a pre-allocated stack protector slot

The LocalStackSlotPass pre-allocates a stack protector and makes sure
that it comes before the local variables on the stack.

We need to make sure that later during PEI we don't re-allocate a new
stack protector slot. If that happens, the new stack protector slot will
end up being **after** the local variables that it should be protecting.

Therefore, we would have two slots assigned for two different stack
protectors, one at the top of the stack, and one at the bottom. Since
PEI will overwrite the assigned slot for the stack protector, the load
that is used to compare the value of the stack protector will use the
slot assigned by PEI, which is wrong.

For this, we need to check if the object is pre-allocated, and re-use
that pre-allocated slot.

Differential Revision: https://reviews.llvm.org/D64757
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/LocalStackSlotAllocation.cpp (diff)llvm.src/lib/CodeGen/LocalStackSlotAllocation.cpp
The file was modified/llvm/trunk/lib/CodeGen/PrologEpilogInserter.cpp (diff)llvm.src/lib/CodeGen/PrologEpilogInserter.cpp
The file was modified/llvm/trunk/test/CodeGen/AArch64/stack-guard-reassign.ll (diff)llvm.src/test/CodeGen/AArch64/stack-guard-reassign.ll
The file was modified/llvm/trunk/test/CodeGen/AArch64/stack-guard-reassign.mir (diff)llvm.src/test/CodeGen/AArch64/stack-guard-reassign.mir
The file was modified/llvm/trunk/test/CodeGen/AArch64/stack-guard-vaarg.ll (diff)llvm.src/test/CodeGen/AArch64/stack-guard-vaarg.ll
The file was modified/llvm/trunk/test/CodeGen/ARM/stack-guard-reassign.ll (diff)llvm.src/test/CodeGen/ARM/stack-guard-reassign.ll
The file was modified/llvm/trunk/test/CodeGen/PowerPC/stack-guard-reassign.ll (diff)llvm.src/test/CodeGen/PowerPC/stack-guard-reassign.ll
Revision 366370 by thegameg:
[CodeGen] Add stack protector tests where the guard gets re-assigned

In preparation of a fix, add tests for multiple backends.
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/CodeGen/AArch64/stack-guard-reassign.llllvm.src/test/CodeGen/AArch64/stack-guard-reassign.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/stack-guard-reassign.mirllvm.src/test/CodeGen/AArch64/stack-guard-reassign.mir
The file was added/llvm/trunk/test/CodeGen/AArch64/stack-guard-vaarg.llllvm.src/test/CodeGen/AArch64/stack-guard-vaarg.ll
The file was added/llvm/trunk/test/CodeGen/ARM/stack-guard-reassign.llllvm.src/test/CodeGen/ARM/stack-guard-reassign.ll
The file was added/llvm/trunk/test/CodeGen/Inputs/stack-guard-reassign.llllvm.src/test/CodeGen/Inputs/stack-guard-reassign.ll
The file was added/llvm/trunk/test/CodeGen/PowerPC/stack-guard-reassign.llllvm.src/test/CodeGen/PowerPC/stack-guard-reassign.ll
Revision 366369 by thegameg:
[CodeGen][NFC] Simplify checks for stack protector index checking

Use `hasStackProtectorIndex()` instead of `getStackProtectorIndex() >=
0`.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/LocalStackSlotAllocation.cpp (diff)llvm.src/lib/CodeGen/LocalStackSlotAllocation.cpp
The file was modified/llvm/trunk/lib/CodeGen/PrologEpilogInserter.cpp (diff)llvm.src/lib/CodeGen/PrologEpilogInserter.cpp
Revision 366368 by ssrivastava:
Renamed and changed the wording of warn_cconv_ignored

As discussed in D64780 the wording of this warning message is being
changed to say 'is not supported' instead of 'ignored', and the
diag ID itself is being changed to warn_cconv_not_supported.
Change TypePath in RepositoryPath in Workspace
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/SemaDecl.cpp (diff)clang.src/lib/Sema/SemaDecl.cpp
The file was modified/cfe/trunk/lib/Sema/SemaDeclAttr.cpp (diff)clang.src/lib/Sema/SemaDeclAttr.cpp
The file was modified/cfe/trunk/lib/Sema/SemaType.cpp (diff)clang.src/lib/Sema/SemaType.cpp
The file was modified/cfe/trunk/test/CodeGen/aarch64-vpcs.c (diff)clang.src/test/CodeGen/aarch64-vpcs.c
The file was modified/cfe/trunk/test/Frontend/macro_defined_type.cpp (diff)clang.src/test/Frontend/macro_defined_type.cpp
The file was modified/cfe/trunk/test/Sema/callingconv-iamcu.c (diff)clang.src/test/Sema/callingconv-iamcu.c
The file was modified/cfe/trunk/test/Sema/callingconv.c (diff)clang.src/test/Sema/callingconv.c
The file was modified/cfe/trunk/test/Sema/mrtd.c (diff)clang.src/test/Sema/mrtd.c
The file was modified/cfe/trunk/test/Sema/pr25786.c (diff)clang.src/test/Sema/pr25786.c
The file was modified/cfe/trunk/test/Sema/stdcall-fastcall-x64.c (diff)clang.src/test/Sema/stdcall-fastcall-x64.c
The file was modified/cfe/trunk/test/SemaCUDA/cuda-inherits-calling-conv.cu (diff)clang.src/test/SemaCUDA/cuda-inherits-calling-conv.cu
The file was modified/cfe/trunk/test/SemaCXX/borland-extensions.cpp (diff)clang.src/test/SemaCXX/borland-extensions.cpp
The file was modified/cfe/trunk/test/SemaCXX/cxx11-gnu-attrs.cpp (diff)clang.src/test/SemaCXX/cxx11-gnu-attrs.cpp
The file was modified/cfe/trunk/test/SemaCXX/decl-microsoft-call-conv.cpp (diff)clang.src/test/SemaCXX/decl-microsoft-call-conv.cpp
The file was modified/cfe/trunk/test/SemaCXX/virtual-override-x64.cpp (diff)clang.src/test/SemaCXX/virtual-override-x64.cpp
The file was modified/cfe/trunk/test/SemaTemplate/instantiate-function-params.cpp (diff)clang.src/test/SemaTemplate/instantiate-function-params.cpp
Revision 366367 by arsenm:
GlobalISel: Handle widenScalar of arbitrary G_MERGE_VALUES sources

Extract the sources to the GCD of the original size and target size,
padding with implicit_def as necessary.

Also fix the case where the requested source type is wider than the
original result type. This was ignoring the type, and just using the
destination. Do the operation in the requested type and truncate back.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Support/MathExtras.h (diff)llvm.src/include/llvm/Support/MathExtras.h
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/LegalizerHelper.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/MachineIRBuilder.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-merge-values.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-merge-values.mir
The file was modified/llvm/trunk/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp (diff)llvm.src/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
Revision 366366 by arsenm:
GlobalISel: Handle more cases for widenScalar of G_MERGE_VALUES

Use an anyext to the requested type for the leftover operand to
produce a slightly wider type, and then truncate the final merge.

I have another implementation almost ready which handles arbitrary
widens, but I think it produces worse code in this example (which I
think is 90% due to not folding redundant copies or folding out
implicit_def users), so I wanted to add this as a baseline first.
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
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/legalize-merge-values.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/legalize-merge-values.mir
The file was modified/llvm/trunk/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp (diff)llvm.src/unittests/CodeGen/GlobalISel/LegalizerHelperTest.cpp
Revision 366361 by eugenis:
Basic MTE stack tagging instrumentation.

Summary:
Use MTE intrinsics to tag stack variables in functions with
sanitize_memtag attribute.

Reviewers: pcc, vitalybuka, hctim, ostannard

Subscribers: srhines, mgorny, javed.absar, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64173
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64.h (diff)llvm.src/lib/Target/AArch64/AArch64.h
The file was added/llvm/trunk/lib/Target/AArch64/AArch64StackTagging.cppllvm.src/lib/Target/AArch64/AArch64StackTagging.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64TargetMachine.cpp (diff)llvm.src/lib/Target/AArch64/AArch64TargetMachine.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/CMakeLists.txt (diff)llvm.src/lib/Target/AArch64/CMakeLists.txt
The file was modified/llvm/trunk/test/CodeGen/AArch64/O0-pipeline.ll (diff)llvm.src/test/CodeGen/AArch64/O0-pipeline.ll
The file was modified/llvm/trunk/test/CodeGen/AArch64/O3-pipeline.ll (diff)llvm.src/test/CodeGen/AArch64/O3-pipeline.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/stack-tagging-dbg.llllvm.src/test/CodeGen/AArch64/stack-tagging-dbg.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/stack-tagging.llllvm.src/test/CodeGen/AArch64/stack-tagging.ll
Revision 366360 by eugenis:
Basic codegen for MTE stack tagging.

Implement IR intrinsics for stack tagging. Generated code is very
unoptimized for now.

Two special intrinsics, llvm.aarch64.irg.sp and llvm.aarch64.tagp are
used to implement a tagged stack frame pointer in a virtual register.

Differential Revision: https://reviews.llvm.org/D64172
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/SelectionDAGTargetInfo.h (diff)llvm.src/include/llvm/CodeGen/SelectionDAGTargetInfo.h
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicsAArch64.td (diff)llvm.src/include/llvm/IR/IntrinsicsAArch64.td
The file was modified/llvm/trunk/lib/Analysis/ValueTracking.cpp (diff)llvm.src/lib/Analysis/ValueTracking.cpp
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/Target/AArch64/AArch64ExpandPseudoInsts.cpp (diff)llvm.src/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64FrameLowering.cpp (diff)llvm.src/lib/Target/AArch64/AArch64FrameLowering.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp (diff)llvm.src/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
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/AArch64ISelLowering.h (diff)llvm.src/lib/Target/AArch64/AArch64ISelLowering.h
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrFormats.td (diff)llvm.src/lib/Target/AArch64/AArch64InstrFormats.td
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.cpp (diff)llvm.src/lib/Target/AArch64/AArch64InstrInfo.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td (diff)llvm.src/lib/Target/AArch64/AArch64InstrInfo.td
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64MachineFunctionInfo.h (diff)llvm.src/lib/Target/AArch64/AArch64MachineFunctionInfo.h
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/AArch64SelectionDAGInfo.cpp (diff)llvm.src/lib/Target/AArch64/AArch64SelectionDAGInfo.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64SelectionDAGInfo.h (diff)llvm.src/lib/Target/AArch64/AArch64SelectionDAGInfo.h
The file was modified/llvm/trunk/test/Analysis/ValueTracking/aarch64.irg.ll (diff)llvm.src/test/Analysis/ValueTracking/aarch64.irg.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/irg.llllvm.src/test/CodeGen/AArch64/irg.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/irg_sp_tagp.llllvm.src/test/CodeGen/AArch64/irg_sp_tagp.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/settag.llllvm.src/test/CodeGen/AArch64/settag.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/stgp.llllvm.src/test/CodeGen/AArch64/stgp.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/tagp.llllvm.src/test/CodeGen/AArch64/tagp.ll
Revision 366359 by Louis Dionne:
[libc++] XFAIL a test that does not behave properly on older Clang

rdar://53015486
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/test/libcxx/language.support/support.dynamic/libcpp_deallocate.sh.cpp (diff)libcxx.src/test/libcxx/language.support/support.dynamic/libcpp_deallocate.sh.cpp
Revision 366358 by sbc:
[lld][WebAssembly] Fix handling of comdat functions in init array.

When hidden symbols are discarded by comdat rules we still want to
create a local defined symbol, otherwise `Symbol::isDiscarded()` relies
on begin able to check `getChunk->discarded`.

This is a followup on rL362769. The comdat.ll test was previously GC'ing
the `__wasm_call_ctors` functions so `do_init` was not actually being
included in the link.  Once that function was included in triggered the
crash bug that this change addresses.

Fixes: https://github.com/emscripten-core/emscripten/issues/8981

Differential Revision: https://reviews.llvm.org/D64872
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/test/wasm/Inputs/comdat1.ll (diff)lld.src/test/wasm/Inputs/comdat1.ll
The file was modified/lld/trunk/test/wasm/Inputs/comdat2.ll (diff)lld.src/test/wasm/Inputs/comdat2.ll
The file was modified/lld/trunk/test/wasm/comdats.ll (diff)lld.src/test/wasm/comdats.ll
The file was modified/lld/trunk/wasm/InputFiles.cpp (diff)lld.src/wasm/InputFiles.cpp
The file was modified/lld/trunk/wasm/Writer.cpp (diff)lld.src/wasm/Writer.cpp
Revision 366357 by abataev:
[OPENMP]Fix PR42632: crash on the analysis of the OpenMP constructs.

Fixed processing of the CapturedStmt children to fix the crash of the
OpenMP constructs during analysis.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/ParentMap.cpp (diff)clang.src/lib/AST/ParentMap.cpp
The file was modified/cfe/trunk/test/Analysis/openmp-unsupported.c (diff)clang.src/test/Analysis/openmp-unsupported.c
Revision 366355 by chill:
Revert [AArch64] Add support for Transactional Memory Extension (TME)

This reverts r366322 (git commit 4b8da3a503e434ddbc08ecf66582475765f449bc)
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/BuiltinsAArch64.def (diff)clang.src/include/clang/Basic/BuiltinsAArch64.def
The file was modified/cfe/trunk/lib/Basic/Targets/AArch64.cpp (diff)clang.src/lib/Basic/Targets/AArch64.cpp
The file was modified/cfe/trunk/lib/Basic/Targets/AArch64.h (diff)clang.src/lib/Basic/Targets/AArch64.h
The file was modified/cfe/trunk/lib/Headers/arm_acle.h (diff)clang.src/lib/Headers/arm_acle.h
The file was modified/cfe/trunk/lib/Sema/SemaChecking.cpp (diff)clang.src/lib/Sema/SemaChecking.cpp
The file was removed/cfe/trunk/test/CodeGen/aarch64-tme-tcancel-arg.cppclang.src/test/CodeGen/aarch64-tme-tcancel-arg.cpp
The file was removed/cfe/trunk/test/CodeGen/aarch64-tme.cclang.src/test/CodeGen/aarch64-tme.c
The file was removed/cfe/trunk/test/Sema/aarch64-tme-errors.cclang.src/test/Sema/aarch64-tme-errors.c
The file was removed/cfe/trunk/test/Sema/aarch64-tme-tcancel-const-error.cclang.src/test/Sema/aarch64-tme-tcancel-const-error.c
The file was removed/cfe/trunk/test/Sema/aarch64-tme-tcancel-range-error.cclang.src/test/Sema/aarch64-tme-tcancel-range-error.c
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicsAArch64.td (diff)llvm.src/include/llvm/IR/IntrinsicsAArch64.td
The file was modified/llvm/trunk/include/llvm/Support/AArch64TargetParser.def (diff)llvm.src/include/llvm/Support/AArch64TargetParser.def
The file was modified/llvm/trunk/include/llvm/Support/AArch64TargetParser.h (diff)llvm.src/include/llvm/Support/AArch64TargetParser.h
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/AArch64InstrFormats.td (diff)llvm.src/lib/Target/AArch64/AArch64InstrFormats.td
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td (diff)llvm.src/lib/Target/AArch64/AArch64InstrInfo.td
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64Subtarget.h (diff)llvm.src/lib/Target/AArch64/AArch64Subtarget.h
The file was removed/llvm/trunk/test/CodeGen/AArch64/tme-tcancel.llllvm.src/test/CodeGen/AArch64/tme-tcancel.ll
The file was removed/llvm/trunk/test/CodeGen/AArch64/tme-tcommit.llllvm.src/test/CodeGen/AArch64/tme-tcommit.ll
The file was removed/llvm/trunk/test/CodeGen/AArch64/tme-tstart.llllvm.src/test/CodeGen/AArch64/tme-tstart.ll
The file was removed/llvm/trunk/test/CodeGen/AArch64/tme-ttest.llllvm.src/test/CodeGen/AArch64/tme-ttest.ll
The file was removed/llvm/trunk/test/MC/AArch64/tme-error.sllvm.src/test/MC/AArch64/tme-error.s
The file was removed/llvm/trunk/test/MC/AArch64/tme.sllvm.src/test/MC/AArch64/tme.s
The file was removed/llvm/trunk/test/MC/Disassembler/AArch64/tme.txtllvm.src/test/MC/Disassembler/AArch64/tme.txt
The file was modified/llvm/trunk/unittests/Support/TargetParserTest.cpp (diff)llvm.src/unittests/Support/TargetParserTest.cpp
Revision 366354 by juliehockett:
[clang-tidy] Exclude forward decls from fuchsia-multiple-inheritance

Addresses b39770.

Differential Revision: https://reviews.llvm.org/D64813
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp (diff)clang-tools-extra.src/clang-tidy/fuchsia/MultipleInheritanceCheck.cpp
The file was modified/clang-tools-extra/trunk/test/clang-tidy/fuchsia-multiple-inheritance.cpp (diff)clang-tools-extra.src/test/clang-tidy/fuchsia-multiple-inheritance.cpp
Revision 366353 by nathan-huckleberry:
[clang-tidy] Fix crash on end location inside macro

Summary:
Lexer::getLocForEndOfToken is defined to return an
invalid location if the given location is inside a macro.
Other checks conditionally warn based off location
validity. Updating this check to do the same.

Reviewers: JonasToth, aaron.ballman, nickdesaulniers

Reviewed By: nickdesaulniers

Subscribers: lebedev.ri, nickdesaulniers, xazax.hun, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64607
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clang-tidy/bugprone/BranchCloneCheck.cpp (diff)clang-tools-extra.src/clang-tidy/bugprone/BranchCloneCheck.cpp
The file was added/clang-tools-extra/trunk/test/clang-tidy/bugprone-branch-clone-macro-crash.cclang-tools-extra.src/test/clang-tidy/bugprone-branch-clone-macro-crash.c
Revision 366351 by stulova:
[Docs][OpenCL] Documentation of C++ for OpenCL mode

Added documentation of C++ for OpenCL mode into Clang
User Manual and Language Extensions document.

Differential Revision: https://reviews.llvm.org/D64418
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/docs/LanguageExtensions.rst (diff)clang.src/docs/LanguageExtensions.rst
The file was modified/cfe/trunk/docs/UsersManual.rst (diff)clang.src/docs/UsersManual.rst
Revision 366348 by dfukalov:
[AMDGPU] Tune inlining parameters for AMDGPU target

Summary:
Since the target has no significant advantage of vectorization,
vector instructions bous threshold bonus should be optional.

amdgpu-inline-arg-alloca-cost parameter default value and the target
InliningThresholdMultiplier value tuned then respectively.

Reviewers: arsenm, rampitec

Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, eraman, hiraditya, haicheng, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64642
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Analysis/TargetTransformInfo.h (diff)llvm.src/include/llvm/Analysis/TargetTransformInfo.h
The file was modified/llvm/trunk/include/llvm/Analysis/TargetTransformInfoImpl.h (diff)llvm.src/include/llvm/Analysis/TargetTransformInfoImpl.h
The file was modified/llvm/trunk/include/llvm/CodeGen/BasicTTIImpl.h (diff)llvm.src/include/llvm/CodeGen/BasicTTIImpl.h
The file was modified/llvm/trunk/lib/Analysis/InlineCost.cpp (diff)llvm.src/lib/Analysis/InlineCost.cpp
The file was modified/llvm/trunk/lib/Analysis/TargetTransformInfo.cpp (diff)llvm.src/lib/Analysis/TargetTransformInfo.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUInline.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPUInline.cpp
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/CodeGen/AMDGPU/amdgpu-inline.ll (diff)llvm.src/test/CodeGen/AMDGPU/amdgpu-inline.ll
The file was added/llvm/trunk/test/Transforms/Inline/AMDGPU/inline-amdgpu-vecbonus.llllvm.src/test/Transforms/Inline/AMDGPU/inline-amdgpu-vecbonus.ll
Revision 366344 by Lang Hames:
[ORC] Add deprecation warnings to ORCv1 layers and utilities.

Summary:
ORCv1 is deprecated. The current aim is to remove it before the LLVM 10.0
release. This patch adds deprecation attributes to the ORCv1 layers and
utilities to warn clients of the change.

Reviewers: dblaikie, sgraenitz, AlexDenisov

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64609
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter3/KaleidoscopeJIT.h (diff)llvm.src/examples/Kaleidoscope/BuildingAJIT/Chapter3/KaleidoscopeJIT.h
The file was modified/llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter4/KaleidoscopeJIT.h (diff)llvm.src/examples/Kaleidoscope/BuildingAJIT/Chapter4/KaleidoscopeJIT.h
The file was modified/llvm/trunk/examples/Kaleidoscope/BuildingAJIT/Chapter5/KaleidoscopeJIT.h (diff)llvm.src/examples/Kaleidoscope/BuildingAJIT/Chapter5/KaleidoscopeJIT.h
The file was modified/llvm/trunk/examples/Kaleidoscope/include/KaleidoscopeJIT.h (diff)llvm.src/examples/Kaleidoscope/include/KaleidoscopeJIT.h
The file was modified/llvm/trunk/include/llvm/ExecutionEngine/ExecutionEngine.h (diff)llvm.src/include/llvm/ExecutionEngine/ExecutionEngine.h
The file was modified/llvm/trunk/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h (diff)llvm.src/include/llvm/ExecutionEngine/Orc/CompileOnDemandLayer.h
The file was modified/llvm/trunk/include/llvm/ExecutionEngine/Orc/Core.h (diff)llvm.src/include/llvm/ExecutionEngine/Orc/Core.h
The file was modified/llvm/trunk/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h (diff)llvm.src/include/llvm/ExecutionEngine/Orc/ExecutionUtils.h
The file was modified/llvm/trunk/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h (diff)llvm.src/include/llvm/ExecutionEngine/Orc/IRCompileLayer.h
The file was modified/llvm/trunk/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h (diff)llvm.src/include/llvm/ExecutionEngine/Orc/IRTransformLayer.h
The file was modified/llvm/trunk/include/llvm/ExecutionEngine/Orc/LambdaResolver.h (diff)llvm.src/include/llvm/ExecutionEngine/Orc/LambdaResolver.h
The file was modified/llvm/trunk/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h (diff)llvm.src/include/llvm/ExecutionEngine/Orc/LazyEmittingLayer.h
The file was modified/llvm/trunk/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h (diff)llvm.src/include/llvm/ExecutionEngine/Orc/ObjectTransformLayer.h
The file was modified/llvm/trunk/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h (diff)llvm.src/include/llvm/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.h
The file was modified/llvm/trunk/include/llvm/ExecutionEngine/Orc/RemoteObjectLayer.h (diff)llvm.src/include/llvm/ExecutionEngine/Orc/RemoteObjectLayer.h
The file was added/llvm/trunk/include/llvm/ExecutionEngine/OrcV1Deprecation.hllvm.src/include/llvm/ExecutionEngine/OrcV1Deprecation.h
The file was modified/llvm/trunk/lib/ExecutionEngine/Orc/OrcCBindingsStack.h (diff)llvm.src/lib/ExecutionEngine/Orc/OrcCBindingsStack.h
The file was modified/llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp (diff)llvm.src/lib/ExecutionEngine/Orc/OrcMCJITReplacement.cpp
The file was modified/llvm/trunk/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h (diff)llvm.src/lib/ExecutionEngine/Orc/OrcMCJITReplacement.h
The file was modified/llvm/trunk/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp (diff)llvm.src/lib/ExecutionEngine/Orc/RTDyldObjectLinkingLayer.cpp
The file was modified/llvm/trunk/tools/lli/lli.cpp (diff)llvm.src/tools/lli/lli.cpp
The file was modified/llvm/trunk/unittests/ExecutionEngine/Orc/LazyEmittingLayerTest.cpp (diff)llvm.src/unittests/ExecutionEngine/Orc/LazyEmittingLayerTest.cpp
The file was modified/llvm/trunk/unittests/ExecutionEngine/Orc/LegacyCompileOnDemandLayerTest.cpp (diff)llvm.src/unittests/ExecutionEngine/Orc/LegacyCompileOnDemandLayerTest.cpp
The file was modified/llvm/trunk/unittests/ExecutionEngine/Orc/LegacyRTDyldObjectLinkingLayerTest.cpp (diff)llvm.src/unittests/ExecutionEngine/Orc/LegacyRTDyldObjectLinkingLayerTest.cpp
The file was modified/llvm/trunk/unittests/ExecutionEngine/Orc/ObjectTransformLayerTest.cpp (diff)llvm.src/unittests/ExecutionEngine/Orc/ObjectTransformLayerTest.cpp
The file was modified/llvm/trunk/unittests/ExecutionEngine/Orc/RemoteObjectLayerTest.cpp (diff)llvm.src/unittests/ExecutionEngine/Orc/RemoteObjectLayerTest.cpp
Revision 366343 by asb:
[RISCV] Revert r366331 as it exposed some sanitizer failures

See <http://lab.llvm.org:8011/builders/sanitizer-x86_64-linux-fast/builds/33612>.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/CMakeLists.txt (diff)llvm.src/CMakeLists.txt
Revision 366342 by yln:
[ASan] Support `{f}puts(NULL)` on Darwin

On Darwin, the man page states that "both fputs() and puts() print
`(null)' if str is NULL."

rdar://48227136

Reviewed By: Lekensteyn

Differential Revision: https://reviews.llvm.org/D64773
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/sanitizer_common/sanitizer_common_interceptors.inc (diff)compiler-rt.src/lib/sanitizer_common/sanitizer_common_interceptors.inc
The file was added/compiler-rt/trunk/test/sanitizer_common/TestCases/Darwin/fputs_puts_null.cccompiler-rt.src/test/sanitizer_common/TestCases/Darwin/fputs_puts_null.cc
Revision 366340 by arsenm:
AMDGPU: Use getTargetConstant

Avoids creating an extra intermediate mov.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/shift-i128.ll (diff)llvm.src/test/CodeGen/AMDGPU/shift-i128.ll
Revision 366339 by rksimon:
Fix MSVC 'implicitly capture' compile error. NFCI.
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/QueryDriverDatabase.cpp (diff)clang-tools-extra.src/clangd/QueryDriverDatabase.cpp
Revision 366338 by nridge:
[clangd] Type hierarchy: don't resolve parents if the client only asked for children

Summary: Also reorganize the code for computing supertypes to make it more symmetric to subtypes.

Reviewers: kadircet

Reviewed By: kadircet

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64613
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/XRefs.cpp (diff)clang-tools-extra.src/clangd/XRefs.cpp
The file was modified/clang-tools-extra/trunk/clangd/unittests/TypeHierarchyTests.cpp (diff)clang-tools-extra.src/clangd/unittests/TypeHierarchyTests.cpp
Revision 366337 by ibiryukov:
[clang-tidy] Adjust location of namespace comment diagnostic

Summary:
If there is no comment, place it at the closing brace of a namespace
definition. Previously it was placed at the next character after the
closing brace.

The new position produces a better location for highlighting in clangd
and does not seem to make matters worse for clang-tidy.

Reviewers: alexfh, hokein

Reviewed By: alexfh, hokein

Subscribers: xazax.hun, kadircet, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64861
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clang-tidy/readability/NamespaceCommentCheck.cpp (diff)clang-tools-extra.src/clang-tidy/readability/NamespaceCommentCheck.cpp
The file was modified/clang-tools-extra/trunk/test/clang-tidy/google-readability-namespace-comments.cpp (diff)clang-tools-extra.src/test/clang-tidy/google-readability-namespace-comments.cpp
The file was modified/clang-tools-extra/trunk/test/clang-tidy/google-readability-nested-namespace-comments.cpp (diff)clang-tools-extra.src/test/clang-tidy/google-readability-nested-namespace-comments.cpp
The file was modified/clang-tools-extra/trunk/test/clang-tidy/select-checks.cpp (diff)clang-tools-extra.src/test/clang-tidy/select-checks.cpp
Revision 366336 by mikerice:
[OPENMP]Fix crash in LoopCounterRefChecker when MemberExpr is not Var or Field

checkDecl is only valid for VarDecls or FieldDecls, since getCanonicalDecl
expects only these. Prevent other Decl kinds (such as CXXMethodDecls and
EnumConstantDecls) from entering and asserting.

Differential Revision: https://reviews.llvm.org/D64842
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaOpenMP.cpp (diff)clang.src/lib/Sema/SemaOpenMP.cpp
The file was modified/cfe/trunk/test/OpenMP/for_loop_messages.cpp (diff)clang.src/test/OpenMP/for_loop_messages.cpp
Revision 366335 by uenoku:
[Attributor] Deduce "willreturn" function attribute

Summary:
Deduce the "willreturn" attribute for functions.

For now, intrinsics are not willreturn. More annotation will be done in another patch.

Reviewers: jdoerfert

Subscribers: jvesely, nhaehnle, nicholas, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D63046
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/Intrinsics.td (diff)llvm.src/include/llvm/IR/Intrinsics.td
The file was modified/llvm/trunk/include/llvm/Transforms/IPO/Attributor.h (diff)llvm.src/include/llvm/Transforms/IPO/Attributor.h
The file was modified/llvm/trunk/lib/Transforms/IPO/Attributor.cpp (diff)llvm.src/lib/Transforms/IPO/Attributor.cpp
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/arg_returned.ll (diff)llvm.src/test/Transforms/FunctionAttrs/arg_returned.ll
The file was modified/llvm/trunk/test/Transforms/FunctionAttrs/willreturn.ll (diff)llvm.src/test/Transforms/FunctionAttrs/willreturn.ll
The file was modified/llvm/trunk/utils/TableGen/CodeGenIntrinsics.h (diff)llvm.src/utils/TableGen/CodeGenIntrinsics.h
The file was modified/llvm/trunk/utils/TableGen/CodeGenTarget.cpp (diff)llvm.src/utils/TableGen/CodeGenTarget.cpp
The file was modified/llvm/trunk/utils/TableGen/IntrinsicEmitter.cpp (diff)llvm.src/utils/TableGen/IntrinsicEmitter.cpp
Revision 366334 by gbreynoo:
[llvm-ar][test] Add tests failing on Darwin

These tests that failed on Darwin but passed on other machines due to the default archive format differing
on a Darwin machine, and what looks to be bugs in the output of this format.
I can not investigate these issue further so the tests are considered expected failures on Darwin.

Differential Revision: https://reviews.llvm.org/D64802
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/tools/llvm-ar/extract.testllvm.src/test/tools/llvm-ar/extract.test
The file was added/llvm/trunk/test/tools/llvm-ar/mri-utf8.testllvm.src/test/tools/llvm-ar/mri-utf8.test
The file was added/llvm/trunk/test/tools/llvm-ar/print.testllvm.src/test/tools/llvm-ar/print.test
Revision 366333 by chrisj:
[lld] Add Visual Studio compatible diagnostics

Summary:
Add a --vs-diagnostics flag that alters the format of diagnostic output
to enable source hyperlinks in Visual Studio.

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

Reviewed by: ruiu
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/Common/ErrorHandler.cpp (diff)lld.src/Common/ErrorHandler.cpp
The file was modified/lld/trunk/ELF/Driver.cpp (diff)lld.src/ELF/Driver.cpp
The file was modified/lld/trunk/ELF/Options.td (diff)lld.src/ELF/Options.td
The file was modified/lld/trunk/include/lld/Common/ErrorHandler.h (diff)lld.src/include/lld/Common/ErrorHandler.h
The file was added/lld/trunk/test/ELF/Inputs/vs-diagnostics-duplicate2.slld.src/test/ELF/Inputs/vs-diagnostics-duplicate2.s
The file was added/lld/trunk/test/ELF/Inputs/vs-diagnostics-duplicate3.slld.src/test/ELF/Inputs/vs-diagnostics-duplicate3.s
The file was added/lld/trunk/test/ELF/vs-diagnostics-duplicate.slld.src/test/ELF/vs-diagnostics-duplicate.s
The file was added/lld/trunk/test/ELF/vs-diagnostics-dynamic-relocation.slld.src/test/ELF/vs-diagnostics-dynamic-relocation.s
The file was added/lld/trunk/test/ELF/vs-diagnostics-undefined-symbol-1.slld.src/test/ELF/vs-diagnostics-undefined-symbol-1.s
The file was added/lld/trunk/test/ELF/vs-diagnostics-undefined-symbol-2.slld.src/test/ELF/vs-diagnostics-undefined-symbol-2.s
The file was added/lld/trunk/test/ELF/vs-diagnostics-undefined-symbol-3.slld.src/test/ELF/vs-diagnostics-undefined-symbol-3.s
The file was added/lld/trunk/test/ELF/vs-diagnostics-versionscript.slld.src/test/ELF/vs-diagnostics-versionscript.s
Revision 366332 by martong:
[ASTImporter] Fix structural eq of lambdas

Summary:
The structural equivalence check reported false eq between lambda classes
with different parameters in their call signature.
The solution is to check the methods for equality too in case of lambda
classes.

Reviewers: a_sidorin, a.sidorin

Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64075
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/ASTStructuralEquivalence.cpp (diff)clang.src/lib/AST/ASTStructuralEquivalence.cpp
The file was modified/cfe/trunk/unittests/AST/ASTImporterTest.cpp (diff)clang.src/unittests/AST/ASTImporterTest.cpp
The file was modified/cfe/trunk/unittests/AST/StructuralEquivalenceTest.cpp (diff)clang.src/unittests/AST/StructuralEquivalenceTest.cpp
Revision 366331 by asb:
[RISCV] Add RISCV to LLVM_ALL_TARGETS so it s built by default

This follows the RFC <http://lists.llvm.org/pipermail/llvm-dev/2019-July/133724.html>.

Follow-on commits will add appropriate release notes changes etc.

Pushing this now and in a minimal form so there is reasonable time before 9.0
branches to resolve any issues arising from e.g. the backend being exposed on
different sanitizer setups.

The current builder for RISC-V is on the staging build-bot
<http://lab.llvm.org:8014/builders/llvm-riscv-linux>, however with the RISCV
backend being built by default it won't provide any real additional coverage.
We will shortly set up a builder that runs the test-suite in qemu-user.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/CMakeLists.txt (diff)llvm.src/CMakeLists.txt
Revision 366330 by asb:
[RISCV][NFC] Remove outdated TODO from test/CodeGen/RISCV/dwarf-eh.ll
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/CodeGen/RISCV/dwarf-eh.ll (diff)llvm.src/test/CodeGen/RISCV/dwarf-eh.ll
Revision 366329 by asb:
[AsmPrinter] Make the encoding of call sites in .gcc_except_table configurable and use for RISC-V

The original behavior was to always emit the offsets to each call site in the
call site table as uleb128 values, however on some architectures (eg RISCV)
these uleb128 offsets into the code cannot always be resolved until link time
(because relaxation will invalidate any calculated offsets), and there are no
appropriate relocations for uleb128 values. As a consequence it needs to be
possible to specify an alternative.

This also switches RISCV to use DW_EH_PE_udata4 for call side encodings in
.gcc_except_table

Differential Revision: https://reviews.llvm.org/D63415
Patch by Edward Jones.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/AsmPrinter.h (diff)llvm.src/include/llvm/CodeGen/AsmPrinter.h
The file was modified/llvm/trunk/include/llvm/Target/TargetLoweringObjectFile.h (diff)llvm.src/include/llvm/Target/TargetLoweringObjectFile.h
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp (diff)llvm.src/lib/CodeGen/AsmPrinter/AsmPrinterDwarf.cpp
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/EHStreamer.cpp (diff)llvm.src/lib/CodeGen/AsmPrinter/EHStreamer.cpp
The file was modified/llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp (diff)llvm.src/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
The file was modified/llvm/trunk/lib/Target/TargetLoweringObjectFile.cpp (diff)llvm.src/lib/Target/TargetLoweringObjectFile.cpp
The file was modified/llvm/trunk/test/CodeGen/RISCV/dwarf-eh.ll (diff)llvm.src/test/CodeGen/RISCV/dwarf-eh.ll
Revision 366328 by arsenm:
Mips: Remove immarg from copy and insert intrinsics

These intrinsics do in fact work with non-constant index arguments.

These are lowered to either the generic
ISD::INSERT_VECTOR_ELT/ISD::EXTRACT_VECTOR_ELT, or to
VEXTRACT_SEXT_ELT. The handling of these all accept variable
indexes. Turning these into generic instructions which do allow
variables introduces complications in a future change to immarg
handling.

Since these just turn into generic instructions, these are kind of
pointless and should probably just be autoupgraded to
extractelement/insertelement.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicsMips.td (diff)llvm.src/include/llvm/IR/IntrinsicsMips.td
Revision 366327 by asb:
[RISCV] Set correct encodings for DWARF exception handling

This patch sets correct encodings for DWARF exception handling for RISC-V
(other than call site encoding, which must be udata4 rather than uleb128 and
is handled by D63415).

This has the same intend as D63409, except this version matches GCC/binutils
behaviour which uses the same encodings regardless of PIC/non-PIC and
medlow/medany code model.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/TargetLoweringObjectFileImpl.cpp (diff)llvm.src/lib/CodeGen/TargetLoweringObjectFileImpl.cpp
The file was modified/llvm/trunk/test/CodeGen/RISCV/dwarf-eh.ll (diff)llvm.src/test/CodeGen/RISCV/dwarf-eh.ll
Revision 366326 by asb:
[RISCV][NFC] Add tests that capture current encodings for DWARF EH

Items which are known to be wrong/different vs GCC are marked as TODO and will
be address in follow-up patches.
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/CodeGen/RISCV/dwarf-eh.llllvm.src/test/CodeGen/RISCV/dwarf-eh.ll
The file was added/llvm/trunk/test/DebugInfo/RISCV/eh-frame.sllvm.src/test/DebugInfo/RISCV/eh-frame.s
The file was added/llvm/trunk/test/MC/RISCV/fde-reloc.sllvm.src/test/MC/RISCV/fde-reloc.s
Revision 366325 by martong:
[ASTImporter] Fix LLDB lookup in transparent ctx and with ext src

Summary:
With LLDB we use localUncachedLookup(), however, that fails to find
Decls when a transparent context is involved and the given DC has
external lexical storage.  The solution is to use noload_lookup, which
works well with transparent contexts.  But, we cannot use only the
noload_lookup since the slow case of localUncachedLookup is still needed
in some other cases.

These other cases are handled in ASTImporterLookupTable, but we cannot
use that with LLDB since that traverses through the AST which initiates
the load of external decls again via DC::decls().

We must avoid loading external decls during the import becuase
ExternalASTSource is implemented with ASTImporter, so external loads
during import results in uncontrolled and faulty import.

Reviewers: shafik, teemperor, jingham, clayborg, a_sidorin, a.sidorin

Subscribers: rnkovacs, dkrupp, Szelethus, gamesh411, cfe-commits, lldb-commits

Tags: #clang, #lldb

Differential Revision: https://reviews.llvm.org/D61333
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/AST/ASTImporter.cpp (diff)clang.src/lib/AST/ASTImporter.cpp
The file was modified/cfe/trunk/unittests/AST/ASTImporterTest.cpp (diff)clang.src/unittests/AST/ASTImporterTest.cpp
The file was modified/lldb/trunk/packages/Python/lldbsuite/test/lang/c/modules/TestCModules.py (diff)N/A
The file was modified/lldb/trunk/packages/Python/lldbsuite/test/lang/c/modules/main.c (diff)N/A
The file was modified/lldb/trunk/source/Plugins/ExpressionParser/Clang/ClangASTSource.cpp (diff)N/A
Revision 366324 by maskray:
[llvm-ar][test] \r\n -> \n

Also simplify some empty output tests with 'count 0'
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-ar/create.test (diff)llvm.src/test/tools/llvm-ar/create.test
The file was modified/llvm/trunk/test/tools/llvm-ar/dash-before-letter.test (diff)llvm.src/test/tools/llvm-ar/dash-before-letter.test
The file was modified/llvm/trunk/test/tools/llvm-ar/delete.test (diff)llvm.src/test/tools/llvm-ar/delete.test
The file was modified/llvm/trunk/test/tools/llvm-ar/insert-after.test (diff)llvm.src/test/tools/llvm-ar/insert-after.test
The file was modified/llvm/trunk/test/tools/llvm-ar/insert-before.test (diff)llvm.src/test/tools/llvm-ar/insert-before.test
The file was modified/llvm/trunk/test/tools/llvm-ar/move-after.test (diff)llvm.src/test/tools/llvm-ar/move-after.test
The file was modified/llvm/trunk/test/tools/llvm-ar/move-before.test (diff)llvm.src/test/tools/llvm-ar/move-before.test
The file was modified/llvm/trunk/test/tools/llvm-ar/move.test (diff)llvm.src/test/tools/llvm-ar/move.test
The file was modified/llvm/trunk/test/tools/llvm-ar/mri-addlib.test (diff)llvm.src/test/tools/llvm-ar/mri-addlib.test
The file was modified/llvm/trunk/test/tools/llvm-ar/mri-addmod.test (diff)llvm.src/test/tools/llvm-ar/mri-addmod.test
The file was modified/llvm/trunk/test/tools/llvm-ar/mri-comments.test (diff)llvm.src/test/tools/llvm-ar/mri-comments.test
The file was modified/llvm/trunk/test/tools/llvm-ar/mri-end.test (diff)llvm.src/test/tools/llvm-ar/mri-end.test
The file was modified/llvm/trunk/test/tools/llvm-ar/quick-append.test (diff)llvm.src/test/tools/llvm-ar/quick-append.test
The file was modified/llvm/trunk/test/tools/llvm-ar/read-only-archive.test (diff)llvm.src/test/tools/llvm-ar/read-only-archive.test
The file was modified/llvm/trunk/test/tools/llvm-ar/replace-update.test (diff)llvm.src/test/tools/llvm-ar/replace-update.test
The file was modified/llvm/trunk/test/tools/llvm-ar/replace.test (diff)llvm.src/test/tools/llvm-ar/replace.test
The file was modified/llvm/trunk/test/tools/llvm-ar/symtab.test (diff)llvm.src/test/tools/llvm-ar/symtab.test
Revision 366323 by foad:
[AMDGPU] Optimize atomic AND/OR/XOR

Summary: Extend the atomic optimizer to handle AND, OR and XOR.

Reviewers: arsenm, sheredom

Subscribers: kzhuravl, jvesely, wdng, nhaehnle, yaxunl, dstuttard, tpr, t-tye, hiraditya, jfb, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64809
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll (diff)llvm.src/test/CodeGen/AMDGPU/atomic_optimizations_local_pointer.ll
Revision 366322 by chill:
[AArch64] Add support for Transactional Memory Extension (TME)

TME is a future architecture technology, documented in

https://developer.arm.com/architectures/cpu-architecture/a-profile/exploration-tools
https://developer.arm.com/docs/ddi0601/a

More about the future architectures:

https://community.arm.com/developer/ip-products/processors/b/processors-ip-blog/posts/new-technologies-for-the-arm-a-profile-architecture

This patch adds support for the TME instructions TSTART, TTEST, TCOMMIT, and
TCANCEL and the target feature/arch extension "tme".

It also implements TME builtin functions, defined in ACLE Q2 2019
(https://developer.arm.com/docs/101028/latest)

Patch by Javed Absar and Momchil Velikov

Differential Revision: https://reviews.llvm.org/D64416
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/BuiltinsAArch64.def (diff)clang.src/include/clang/Basic/BuiltinsAArch64.def
The file was modified/cfe/trunk/lib/Basic/Targets/AArch64.cpp (diff)clang.src/lib/Basic/Targets/AArch64.cpp
The file was modified/cfe/trunk/lib/Basic/Targets/AArch64.h (diff)clang.src/lib/Basic/Targets/AArch64.h
The file was modified/cfe/trunk/lib/Headers/arm_acle.h (diff)clang.src/lib/Headers/arm_acle.h
The file was modified/cfe/trunk/lib/Sema/SemaChecking.cpp (diff)clang.src/lib/Sema/SemaChecking.cpp
The file was added/cfe/trunk/test/CodeGen/aarch64-tme-tcancel-arg.cppclang.src/test/CodeGen/aarch64-tme-tcancel-arg.cpp
The file was added/cfe/trunk/test/CodeGen/aarch64-tme.cclang.src/test/CodeGen/aarch64-tme.c
The file was added/cfe/trunk/test/Sema/aarch64-tme-errors.cclang.src/test/Sema/aarch64-tme-errors.c
The file was added/cfe/trunk/test/Sema/aarch64-tme-tcancel-const-error.cclang.src/test/Sema/aarch64-tme-tcancel-const-error.c
The file was added/cfe/trunk/test/Sema/aarch64-tme-tcancel-range-error.cclang.src/test/Sema/aarch64-tme-tcancel-range-error.c
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicsAArch64.td (diff)llvm.src/include/llvm/IR/IntrinsicsAArch64.td
The file was modified/llvm/trunk/include/llvm/Support/AArch64TargetParser.def (diff)llvm.src/include/llvm/Support/AArch64TargetParser.def
The file was modified/llvm/trunk/include/llvm/Support/AArch64TargetParser.h (diff)llvm.src/include/llvm/Support/AArch64TargetParser.h
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/AArch64InstrFormats.td (diff)llvm.src/lib/Target/AArch64/AArch64InstrFormats.td
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td (diff)llvm.src/lib/Target/AArch64/AArch64InstrInfo.td
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64Subtarget.h (diff)llvm.src/lib/Target/AArch64/AArch64Subtarget.h
The file was added/llvm/trunk/test/CodeGen/AArch64/tme-tcancel.llllvm.src/test/CodeGen/AArch64/tme-tcancel.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/tme-tcommit.llllvm.src/test/CodeGen/AArch64/tme-tcommit.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/tme-tstart.llllvm.src/test/CodeGen/AArch64/tme-tstart.ll
The file was added/llvm/trunk/test/CodeGen/AArch64/tme-ttest.llllvm.src/test/CodeGen/AArch64/tme-ttest.ll
The file was added/llvm/trunk/test/MC/AArch64/tme-error.sllvm.src/test/MC/AArch64/tme-error.s
The file was added/llvm/trunk/test/MC/AArch64/tme.sllvm.src/test/MC/AArch64/tme.s
The file was added/llvm/trunk/test/MC/Disassembler/AArch64/tme.txtllvm.src/test/MC/Disassembler/AArch64/tme.txt
The file was modified/llvm/trunk/unittests/Support/TargetParserTest.cpp (diff)llvm.src/unittests/Support/TargetParserTest.cpp
Revision 366321 by sammccall:
[clangd] Force the required interpretation of #import on windows tests.

Summary: NFC but should fix a bunch of tests.

Reviewers: kadircet

Subscribers: ilya-biryukov, MaskRay, jkorous, arphaman, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64857
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/unittests/TestTU.cpp (diff)clang-tools-extra.src/clangd/unittests/TestTU.cpp
Revision 366320 by kadircet:
[clangd] Handle windows line endings in QueryDriver

Summary: fixes second case of https://github.com/clangd/clangd/issues/93

Reviewers: sammccall

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

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64789
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/QueryDriverDatabase.cpp (diff)clang-tools-extra.src/clangd/QueryDriverDatabase.cpp
The file was modified/clang-tools-extra/trunk/clangd/test/system-include-extractor.test (diff)clang-tools-extra.src/clangd/test/system-include-extractor.test
Revision 366319 by jhibbits:
PowerPC: Fix register spilling for SPE registers

Summary:
Missed in the original commit, use the correct callee-saved register
list for spilling, instead of the standard SVR432 list.  This avoids
needlessly spilling the SPE non-volatile registers when they're not used.

As part of this, also add where missing, and sort, the spill opcode
checks for SPE and SPE4 register classes.

Reviewers: nemanjai, hfinkel, joerg

Subscribers: kbarton, jsji, llvm-commits

Differential Revision: https://reviews.llvm.org/D56703
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCCallingConv.td (diff)llvm.src/lib/Target/PowerPC/PPCCallingConv.td
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCInstrInfo.cpp (diff)llvm.src/lib/Target/PowerPC/PPCInstrInfo.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCRegisterInfo.cpp (diff)llvm.src/lib/Target/PowerPC/PPCRegisterInfo.cpp
Revision 366318 by jhibbits:
PowerPC/SPE: Fix load/store handling for SPE

Summary:
Pointed out in a comment for D49754, register spilling will currently
spill SPE registers at almost any offset.  However, the instructions
`evstdd` and `evldd` require a) 8-byte alignment, and b) a limit of 256
(unsigned) bytes from the base register, as the offset must fix into a
5-bit offset, which ranges from 0-31 (indexed in double-words).

The update to the register spill test is taken partially from the test
case shown in D49754.

Additionally, pointed out by Kei Thomsen, globals will currently use
evldd/evstdd, though the offset isn't known at compile time, so may
exceed the 8-bit (unsigned) offset permitted.  This fixes that as well,
by forcing it to always use evlddx/evstddx when accessing globals.

Part of the patch contributed by Kei Thomsen.

Reviewers: nemanjai, hfinkel, joerg

Subscribers: kbarton, jsji, llvm-commits

Differential Revision: https://reviews.llvm.org/D54409
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCISelLowering.cpp (diff)llvm.src/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCISelLowering.h (diff)llvm.src/lib/Target/PowerPC/PPCISelLowering.h
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCRegisterInfo.cpp (diff)llvm.src/lib/Target/PowerPC/PPCRegisterInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/PowerPC/spe.ll (diff)llvm.src/test/CodeGen/PowerPC/spe.ll
Revision 366317 by petar.avramovic:
[MIPS GlobalISel] ClampScalar and select pointer G_ICMP

Add narrowScalar to half of original size for G_ICMP.
ClampScalar G_ICMP's operands 2 and 3 to to s32.
Select G_ICMP for pointers for MIPS32. Pointer compare is same
as for integers, it is enough to declare them as legal type.

Differential Revision: https://reviews.llvm.org/D64856
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
The file was modified/llvm/trunk/lib/Target/Mips/MipsLegalizerInfo.cpp (diff)llvm.src/lib/Target/Mips/MipsLegalizerInfo.cpp
The file was modified/llvm/trunk/test/CodeGen/Mips/GlobalISel/instruction-select/icmp.mir (diff)llvm.src/test/CodeGen/Mips/GlobalISel/instruction-select/icmp.mir
The file was modified/llvm/trunk/test/CodeGen/Mips/GlobalISel/legalizer/icmp.mir (diff)llvm.src/test/CodeGen/Mips/GlobalISel/legalizer/icmp.mir
The file was modified/llvm/trunk/test/CodeGen/Mips/GlobalISel/llvm-ir/icmp.ll (diff)llvm.src/test/CodeGen/Mips/GlobalISel/llvm-ir/icmp.ll
The file was modified/llvm/trunk/test/CodeGen/Mips/GlobalISel/regbankselect/icmp.mir (diff)llvm.src/test/CodeGen/Mips/GlobalISel/regbankselect/icmp.mir
Revision 366315 by chill:
[AArch64] Consistent types and naming for AArch64 target features (NFC)

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

Committed as obvious.
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Basic/Targets/AArch64.cpp (diff)clang.src/lib/Basic/Targets/AArch64.cpp
The file was modified/cfe/trunk/lib/Basic/Targets/AArch64.h (diff)clang.src/lib/Basic/Targets/AArch64.h
Revision 366314 by nha:
AMDGPU/GFX10: Apply the VMEM-to-scalar-write hazard also to writes to EXEC

Summary: Change-Id: I854fbf7d48e937bef9f8f3f5d0c8aeb970652630

Reviewers: rampitec, mareko

Subscribers: arsenm, kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, llvm-commits

Tags: #llvm

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

Change-Id: I4405b3a7f84186acea5a78d291bff71056e745fc
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/GCNHazardRecognizer.cpp (diff)llvm.src/lib/Target/AMDGPU/GCNHazardRecognizer.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.end.cf.i32.ll (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/llvm.amdgcn.end.cf.i32.ll
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/vmem-to-salu-hazard.mir (diff)llvm.src/test/CodeGen/AMDGPU/vmem-to-salu-hazard.mir
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/wave32.ll (diff)llvm.src/test/CodeGen/AMDGPU/wave32.ll
Revision 366313 by nha:
AMDGPU: Improve alias analysis for GDS

Summary: GDS cannot alias anything else.

Original patch by: Marek Olšák

Reviewers: arsenm, mareko

Subscribers: kzhuravl, jvesely, wdng, yaxunl, dstuttard, tpr, t-tye, Petar.Avramovic, llvm-commits

Tags: #llvm

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

Change-Id: I07bfbd96f5d5c37a6dfba7997df12f291dd794b0
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPUAliasAnalysis.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll (diff)llvm.src/test/CodeGen/AMDGPU/amdgpu-alias-analysis.ll
Revision 366312 by chill:
[TableGen] Do not set ReadNone attribute on intrinsics with side effects

If an intrinsic is defined without outputs, but having side effects,
it still can be removed completely from the program. This patch makes
TableGen not set Attribute::ReadNone for intrinsics which
are declared with IntrHasSideEffects.

Differential Revision: https://reviews.llvm.org/D64414
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/TableGen/intrin-side-effects.tdllvm.src/test/TableGen/intrin-side-effects.td
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/IntrinsicEmitter.cpp (diff)llvm.src/utils/TableGen/IntrinsicEmitter.cpp
Revision 366311 by sammccall:
[clangd] Fix error message in tweaktests to be useful. NFC
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clangd/unittests/TweakTests.cpp (diff)clang-tools-extra.src/clangd/unittests/TweakTests.cpp
Revision 366309 by gbreynoo:
[llvm-ar][test] Add coverage for replace and update key letters

Some more tests to increase llvm-ar test coverage, this time for replace 'r' and update 'u'.

Differential Revision: https://reviews.llvm.org/D64803
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/tools/llvm-ar/replace-update.testllvm.src/test/tools/llvm-ar/replace-update.test
The file was added/llvm/trunk/test/tools/llvm-ar/replace.testllvm.src/test/tools/llvm-ar/replace.test
Revision 366308 by rovka:
[ARM GlobalISel] Cleanup CallLowering. NFC

Migrate CallLowering::lowerReturnVal to use the same infrastructure as
lowerCall/FormalArguments and remove the now obsolete code path from
splitToValueTypes.

Forgot to push this earlier.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMCallLowering.cpp (diff)llvm.src/lib/Target/ARM/ARMCallLowering.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMCallLowering.h (diff)llvm.src/lib/Target/ARM/ARMCallLowering.h
Revision 366307 by maskray:
[ELF] Delete redundant pageAlign at PT_GNU_RELRO boundaries after D58892

Summary:
After D58892 split the RW PT_LOAD on the PT_GNU_RELRO boundary, the new
layout is:

PT_LOAD(PT_GNU_RELRO(.data.rel.ro .bss.rel.ro)) PT_LOAD(.data. .bss)

The two pageAlign() calls at PT_GNU_RELRO boundaries are redundant due
to the existence of PT_LOAD.

Reviewers: grimar, peter.smith, ruiu, espindola

Reviewed By: ruiu

Subscribers: sfertile, atanasyan, emaste, arichardson, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64854
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/ELF/Writer.cpp (diff)lld.src/ELF/Writer.cpp
Revision 366306 by mantognini:
[OpenCL][Sema] Minor refactoring and constraint checking

Summary:
Simplify code a bit and add assertion to address post-landing comments
from D64083.

Subscribers: yaxunl, Anastasia, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64804
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Sema/SemaExprCXX.cpp (diff)clang.src/lib/Sema/SemaExprCXX.cpp
Revision 366305 by ro:
[Driver] Enable __cxa_atexit on Solaris

Starting with Solaris 11.4 (which is now the required minimal version), Solaris does
support __cxa_atexit.  This patch reflects that.

One might consider removing the affected tests altogether instead of inverting them,
as is done on other targets.

Besides, this lets two ASan tests PASS:

  AddressSanitizer-i386-sunos :: TestCases/init-order-atexit.cc
  AddressSanitizer-i386-sunos-dynamic :: TestCases/init-order-atexit.cc

Tested on x86_64-pc-solaris2.11 and sparcv9-sun-solaris2.11.

Differential Revision: https://reviews.llvm.org/D64491
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChains/Clang.cpp (diff)clang.src/lib/Driver/ToolChains/Clang.cpp
The file was modified/cfe/trunk/test/Driver/cxa-atexit.cpp (diff)clang.src/test/Driver/cxa-atexit.cpp
The file was modified/cfe/trunk/test/Driver/solaris-opts.c (diff)clang.src/test/Driver/solaris-opts.c
Revision 366304 by ruiu:
Replace CRLF with LF.
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp (diff)clang-tools-extra.src/unittests/clang-tidy/ClangTidyDiagnosticConsumerTest.cpp
Revision 366303 by atanasyan:
[mips] Remove redundant test case. NFC

The `inlineasm-constraint-reg64.ll` test checks the same functionality.
Change TypePath in RepositoryPath in Workspace
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm64.llllvm.src/test/CodeGen/Mips/inlineasm64.ll
Revision 366302 by atanasyan:
[mips] Name inline asm constraint test cases in a uniform manner. NFC
Change TypePath in RepositoryPath in Workspace
The file was removed/llvm/trunk/test/CodeGen/Mips/inline-asm-i-constraint-i1.llllvm.src/test/CodeGen/Mips/inline-asm-i-constraint-i1.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-cnstrnt-bad-I-1.llllvm.src/test/CodeGen/Mips/inlineasm-cnstrnt-bad-I-1.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-cnstrnt-bad-J.llllvm.src/test/CodeGen/Mips/inlineasm-cnstrnt-bad-J.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-cnstrnt-bad-K.llllvm.src/test/CodeGen/Mips/inlineasm-cnstrnt-bad-K.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-cnstrnt-bad-L.llllvm.src/test/CodeGen/Mips/inlineasm-cnstrnt-bad-L.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-cnstrnt-bad-N.llllvm.src/test/CodeGen/Mips/inlineasm-cnstrnt-bad-N.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-cnstrnt-bad-O.llllvm.src/test/CodeGen/Mips/inlineasm-cnstrnt-bad-O.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-cnstrnt-bad-P.llllvm.src/test/CodeGen/Mips/inlineasm-cnstrnt-bad-P.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-cnstrnt-bad-l1.llllvm.src/test/CodeGen/Mips/inlineasm-cnstrnt-bad-l1.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-cnstrnt-reg.llllvm.src/test/CodeGen/Mips/inlineasm-cnstrnt-reg.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-cnstrnt-reg64.llllvm.src/test/CodeGen/Mips/inlineasm-cnstrnt-reg64.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-R.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-R.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-ZC-1.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-ZC-1.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-ZC-2.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-ZC-2.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-bad-I-1.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-bad-I-1.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-bad-J.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-bad-J.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-bad-K.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-bad-K.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-bad-L.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-bad-L.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-bad-N.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-bad-N.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-bad-O.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-bad-O.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-bad-P.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-bad-P.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-bad-l1.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-bad-l1.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-i1.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-i1.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-m-1.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-m-1.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-m-2.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-m-2.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-o.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-o.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-reg.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-reg.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint-reg64.llllvm.src/test/CodeGen/Mips/inlineasm-constraint-reg64.ll
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint.llllvm.src/test/CodeGen/Mips/inlineasm-constraint.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm-constraint_ZC_2.llllvm.src/test/CodeGen/Mips/inlineasm-constraint_ZC_2.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm_constraint.llllvm.src/test/CodeGen/Mips/inlineasm_constraint.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm_constraint_R.llllvm.src/test/CodeGen/Mips/inlineasm_constraint_R.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm_constraint_ZC.llllvm.src/test/CodeGen/Mips/inlineasm_constraint_ZC.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm_constraint_m.llllvm.src/test/CodeGen/Mips/inlineasm_constraint_m.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasm_constraint_o.llllvm.src/test/CodeGen/Mips/inlineasm_constraint_o.ll
The file was removed/llvm/trunk/test/CodeGen/Mips/inlineasmmemop.llllvm.src/test/CodeGen/Mips/inlineasmmemop.ll
Revision 366301 by atanasyan:
[mips] Use mult/mflo pattern on 64-bit targets prior to MIPS64

The `MUL` instruction is available starting from the MIPS32/MIPS64 targets.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Mips/Mips64InstrInfo.td (diff)llvm.src/lib/Target/Mips/Mips64InstrInfo.td
The file was modified/llvm/trunk/test/CodeGen/Mips/llvm-ir/mul.ll (diff)llvm.src/test/CodeGen/Mips/llvm-ir/mul.ll
Revision 366300 by atanasyan:
[mips] Implement .cplocal directive

This directive forces to use the alternate register for context pointer.
For example, this code:
  .cplocal $4
  jal foo
expands to:
  ld    $25, %call16(foo)($4)
  jalr  $25

Differential Revision: https://reviews.llvm.org/D64743
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Mips/AsmParser/MipsAsmParser.cpp (diff)llvm.src/lib/Target/Mips/AsmParser/MipsAsmParser.cpp
The file was modified/llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp (diff)llvm.src/lib/Target/Mips/MCTargetDesc/MipsTargetStreamer.cpp
The file was modified/llvm/trunk/lib/Target/Mips/MipsTargetStreamer.h (diff)llvm.src/lib/Target/Mips/MipsTargetStreamer.h
The file was added/llvm/trunk/test/MC/Mips/cplocal-bad.sllvm.src/test/MC/Mips/cplocal-bad.s
The file was added/llvm/trunk/test/MC/Mips/cplocal.sllvm.src/test/MC/Mips/cplocal.s
Revision 366299 by atanasyan:
[mips] Support the "o" inline asm constraint

As well as other LLVM targets we do not handle "offsettable"
memory addresses in any special way. In other words, the "o" constraint
is an exact equivalent of the "m" one. But some existing code require
the "o" constraint support.

This fixes PR42589.

Differential Revision: https://reviews.llvm.org/D64792
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/Mips/MipsISelLowering.h (diff)llvm.src/lib/Target/Mips/MipsISelLowering.h
The file was modified/llvm/trunk/lib/Target/Mips/MipsSEISelDAGToDAG.cpp (diff)llvm.src/lib/Target/Mips/MipsSEISelDAGToDAG.cpp
The file was added/llvm/trunk/test/CodeGen/Mips/inlineasm_constraint_o.llllvm.src/test/CodeGen/Mips/inlineasm_constraint_o.ll
Revision 366294 by skatkov:
[LoopInfo] Fix getUniqueNonLatchExitBlocks

It is possible that exit block has two predecessors and one of them is a latch
block while another is not.

Current algorithm is based on the assumption that all exits are dedicated
and therefore we can check only first predecessor of loop exit to find all unique
exits.

However if we do not consider latch block and it is first predecessor of some
exit then this exit will be found.

Regression test is added.

As a side effect of algorithm re-writing, the restriction that all exits are dedicated
is eliminated.

Reviewers: reames, fhahn, efriedma
Reviewed By: efriedma
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D64787
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Analysis/LoopInfo.h (diff)llvm.src/include/llvm/Analysis/LoopInfo.h
The file was modified/llvm/trunk/include/llvm/Analysis/LoopInfoImpl.h (diff)llvm.src/include/llvm/Analysis/LoopInfoImpl.h
The file was modified/llvm/trunk/unittests/Analysis/LoopInfoTest.cpp (diff)llvm.src/unittests/Analysis/LoopInfoTest.cpp
Revision 366291 by chaofan:
Update email address.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/CREDITS.TXT (diff)llvm.src/CREDITS.TXT
Revision 366290 by aemerson:
Fix more -Werror issues with obsequi.
Change TypePath in RepositoryPath in Workspace
The file was modified/test-suite/trunk/MultiSource/Applications/obsequi/negamax.c (diff)test-suite.src/MultiSource/Applications/obsequi/negamax.c
Revision 366289 by nico:
gn build: Merge r366265
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/clang-tools-extra/clang-tidy/readability/BUILD.gn (diff)llvm.src/utils/gn/secondary/clang-tools-extra/clang-tidy/readability/BUILD.gn
Revision 366288 by nico:
gn build: Merge r366216
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/utils/gn/secondary/llvm/lib/Remarks/BUILD.gn (diff)llvm.src/utils/gn/secondary/llvm/lib/Remarks/BUILD.gn
Revision 366287 by aemerson:
Obsequi: fix implicit declaration of a function, breaks -Werror builds.
Change TypePath in RepositoryPath in Workspace
The file was modified/test-suite/trunk/MultiSource/Applications/obsequi/negamax.c (diff)test-suite.src/MultiSource/Applications/obsequi/negamax.c
Revision 366286 by arsenm:
AMDGPU: Add some missing builtins
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/BuiltinsAMDGPU.def (diff)clang.src/include/clang/Basic/BuiltinsAMDGPU.def
The file was modified/cfe/trunk/lib/CodeGen/CGBuiltin.cpp (diff)clang.src/lib/CodeGen/CGBuiltin.cpp
The file was added/cfe/trunk/test/CodeGenOpenCL/builtins-amdgcn-gfx10.clclang.src/test/CodeGenOpenCL/builtins-amdgcn-gfx10.cl
The file was modified/cfe/trunk/test/CodeGenOpenCL/builtins-amdgcn.cl (diff)clang.src/test/CodeGenOpenCL/builtins-amdgcn.cl
The file was added/cfe/trunk/test/SemaOpenCL/builtins-amdgcn-error-gfx10-param.clclang.src/test/SemaOpenCL/builtins-amdgcn-error-gfx10-param.cl
The file was added/cfe/trunk/test/SemaOpenCL/builtins-amdgcn-error-gfx10.clclang.src/test/SemaOpenCL/builtins-amdgcn-error-gfx10.cl
Revision 366284 by rnk:
Fix OpenCLCXX test on 32-bit Windows where thiscall is present
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/SemaOpenCLCXX/address-space-deduction.cl (diff)clang.src/test/SemaOpenCLCXX/address-space-deduction.cl
Revision 366283 by rampitec:
[AMDGPU] Autogenerate register asm names

Differential Revision: https://reviews.llvm.org/D64839
Change TypePath in RepositoryPath in Workspace
The file was removed/llvm/trunk/lib/Target/AMDGPU/AMDGPURegAsmNames.inc.cppllvm.src/lib/Target/AMDGPU/AMDGPURegAsmNames.inc.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/CMakeLists.txt (diff)llvm.src/lib/Target/AMDGPU/CMakeLists.txt
The file was modified/llvm/trunk/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h (diff)llvm.src/lib/Target/AMDGPU/MCTargetDesc/AMDGPUInstPrinter.h
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIRegisterInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/SIRegisterInfo.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIRegisterInfo.td (diff)llvm.src/lib/Target/AMDGPU/SIRegisterInfo.td
Revision 366282 by rnk:
Fix darwin-ld.c if dsymutil.exe exists on PATH
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/test/Driver/darwin-ld.c (diff)clang.src/test/Driver/darwin-ld.c
Revision 366280 by arsenm:
ARM: Fix missing immarg for space intrinsic
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicsARM.td (diff)llvm.src/include/llvm/IR/IntrinsicsARM.td
The file was modified/llvm/trunk/test/Verifier/ARM/intrinsic-immarg.ll (diff)llvm.src/test/Verifier/ARM/intrinsic-immarg.ll
Revision 366279 by arsenm:
GlobalISel: Add overload of handleAssignments with CCState

AMDGPU needs to allocate special argument registers separately from
the user function argument list, so needs direct control over the
CCState.

The ArgLocs argument is only really necessary because CCState doesn't
allow access to it.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/GlobalISel/CallLowering.h (diff)llvm.src/include/llvm/CodeGen/GlobalISel/CallLowering.h
The file was modified/llvm/trunk/lib/CodeGen/GlobalISel/CallLowering.cpp (diff)llvm.src/lib/CodeGen/GlobalISel/CallLowering.cpp
Revision 366278 by Justin Bogner:
[TableGen] Generate offsets into a flat array for getOperandType

Rather than an array of std::initializer_list, generate a table of
offsets and a flat array of the operands for getOperandType. This is a
bit more efficient on platforms that don't manage to get the array of
inintializer_lists initialized at link time (I'm looking at you
macOS). It's also quite quite a bit faster to compile.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/TableGen/get-operand-type.td (diff)llvm.src/test/TableGen/get-operand-type.td
The file was modified/llvm/trunk/utils/TableGen/InstrInfoEmitter.cpp (diff)llvm.src/utils/TableGen/InstrInfoEmitter.cpp
Revision 366277 by aemerson:
Enable the obsequi application for Darwin. It seems to run with no issues.
Change TypePath in RepositoryPath in Workspace
The file was modified/test-suite/trunk/MultiSource/Applications/CMakeLists.txt (diff)test-suite.src/MultiSource/Applications/CMakeLists.txt
Revision 366276 by George Burgess IV:
Fix a typo in target features

There was a slight typo in r364352 that ended up causing our backend to
complain on some x86 Android builds. This CL fixes that.

Differential Revision: https://reviews.llvm.org/D64781
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Driver/ToolChains/Arch/X86.cpp (diff)clang.src/lib/Driver/ToolChains/Arch/X86.cpp
The file was modified/cfe/trunk/test/Driver/clang-translation.c (diff)clang.src/test/Driver/clang-translation.c
Revision 366275 by quantum:
[WebAssembly] Compile all TLS on Emscripten as local-exec

Summary:
Currently, on Emscripten, dynamic linking is not supported with threads.
This means that if thread-local storage is used, it must be used in a
statically-linked executable. Hence, local-exec is the only possible model.

This diff compiles all TLS variables to use local-exec on Emscripten as a
temporary measure until dynamic linking is supported with threads.

The goal for this is to allow C++ types with constructors to be thread-local.

Currently, when `clang` compiles a `thread_local` variable with a constructor,
it generates `__tls_guard` variable:

    @__tls_guard = internal thread_local global i8 0, align 1

As no TLS model is specified, this is treated as general-dynamic, which we do
not support (and cannot support without implementing dynamic linking support
with threads in Emscripten). As a result, any C++ constructor in `thread_local`
variables would not compile.

By compiling all `thread_local` as local-exec, `__tls_guard` will compile and
we can support C++ constructors with TLS without implementing dynamic linking
with threads.

Depends on D64537

Reviewers: tlively, aheejin, sbc100

Reviewed By: aheejin

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

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64776
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp
The file was added/llvm/trunk/test/CodeGen/WebAssembly/tls-general-dynamic.llllvm.src/test/CodeGen/WebAssembly/tls-general-dynamic.ll
The file was added/llvm/trunk/test/CodeGen/WebAssembly/tls-local-exec.llllvm.src/test/CodeGen/WebAssembly/tls-local-exec.ll
The file was removed/llvm/trunk/test/CodeGen/WebAssembly/tls.llllvm.src/test/CodeGen/WebAssembly/tls.ll
Revision 366274 by Justin Bogner:
[TableGen] Add "getOperandType" to get operand types from opcode/opidx

The InstrInfoEmitter outputs an enum called "OperandType" which gives
numerical IDs to each operand type. This patch makes use of this enum
to define a function called "getOperandType", which allows looking up
the type of an operand given its opcode and operand index.

Patch by Nicolas Guillemot. Thanks!

Differential Revision: https://reviews.llvm.org/D63320
Change TypePath in RepositoryPath in Workspace
The file was added/llvm/trunk/test/TableGen/get-operand-type.tdllvm.src/test/TableGen/get-operand-type.td
The file was modified/llvm/trunk/utils/TableGen/InstrInfoEmitter.cpp (diff)llvm.src/utils/TableGen/InstrInfoEmitter.cpp
Revision 366273 by rnk:
Add REQUIRES: x86 to safeseh-no.s test for x86
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/test/COFF/safeseh-no.s (diff)lld.src/test/COFF/safeseh-no.s
Revision 366272 by quantum:
[WebAssembly] Implement thread-local storage (local-exec model)

Summary:
Thread local variables are placed inside a `.tdata` segment. Their symbols are
offsets from the start of the segment. The address of a thread local variable
is computed as `__tls_base` + the offset from the start of the segment.

`.tdata` segment is a passive segment and `memory.init` is used once per thread
to initialize the thread local storage.

`__tls_base` is a wasm global. Since each thread has its own wasm instance,
it is effectively thread local. Currently, `__tls_base` must be initialized
at thread startup, and so cannot be used with dynamic libraries.

`__tls_base` is to be initialized with a new linker-synthesized function,
`__wasm_init_tls`, which takes as an argument a block of memory to use as the
storage for thread locals. It then initializes the block of memory and sets
`__tls_base`. As `__wasm_init_tls` will handle the memory initialization,
the memory does not have to be zeroed.

To help allocating memory for thread-local storage, a new compiler intrinsic
is introduced: `__builtin_wasm_tls_size()`. This instrinsic function returns
the size of the thread-local storage for the current function.

The expected usage is to run something like the following upon thread startup:

    __wasm_init_tls(malloc(__builtin_wasm_tls_size()));

Reviewers: tlively, aheejin, kripken, sbc100

Subscribers: dschuff, jgravelle-google, hiraditya, sunfish, jfb, cfe-commits, llvm-commits

Tags: #clang, #llvm

Differential Revision: https://reviews.llvm.org/D64537
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/lld/trunk/test/wasm/data-segments.ll (diff)lld.src/test/wasm/data-segments.ll
The file was added/lld/trunk/test/wasm/tls.lllld.src/test/wasm/tls.ll
The file was modified/lld/trunk/wasm/Driver.cpp (diff)lld.src/wasm/Driver.cpp
The file was modified/lld/trunk/wasm/Symbols.cpp (diff)lld.src/wasm/Symbols.cpp
The file was modified/lld/trunk/wasm/Symbols.h (diff)lld.src/wasm/Symbols.h
The file was modified/lld/trunk/wasm/Writer.cpp (diff)lld.src/wasm/Writer.cpp
The file was modified/llvm/trunk/include/llvm/BinaryFormat/Wasm.h (diff)llvm.src/include/llvm/BinaryFormat/Wasm.h
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/include/llvm/MC/MCSectionWasm.h (diff)llvm.src/include/llvm/MC/MCSectionWasm.h
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyFastISel.cpp (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyFastISel.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyISelDAGToDAG.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyMCInstLower.cpp
The file was modified/llvm/trunk/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp (diff)llvm.src/lib/Target/WebAssembly/WebAssemblyTargetMachine.cpp
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/target-features-tls.ll (diff)llvm.src/test/CodeGen/WebAssembly/target-features-tls.ll
The file was modified/llvm/trunk/test/CodeGen/WebAssembly/tls.ll (diff)llvm.src/test/CodeGen/WebAssembly/tls.ll
Revision 366271 by arsenm:
AMDGPU: Partially revert r366250

GCCBuiltin doesn't work for these, because they have a mangled type
(although they arguably should not).
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicsAMDGPU.td (diff)llvm.src/include/llvm/IR/IntrinsicsAMDGPU.td
Revision 366270 by Lang Hames:
[ORC][docs] Fix an RST error: the code-block directive needs a newline after it.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/ORCv2.rst (diff)llvm.src/docs/ORCv2.rst
Revision 366269 by Lang Hames:
[ORC][docs] Trim ORCv1 to ORCv2 transition section, add a how-to section.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/docs/ORCv2.rst (diff)llvm.src/docs/ORCv2.rst
Revision 366268 by spatel:
[x86] use more phadd for reductions

This is part of what is requested by PR42023:
https://bugs.llvm.org/show_bug.cgi?id=42023

There's an extension needed for FP add, but exactly how we would specify
that using flags is not clear to me, so I left that as a TODO.
We're still missing patterns for partial reductions when the input vector
is 256-bit or 512-bit, but I think that's a failure of vector narrowing.
If we can reduce the widths, then this matching should work on those tests.

Differential Revision: https://reviews.llvm.org/D64760
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/phaddsub-extract.ll (diff)llvm.src/test/CodeGen/X86/phaddsub-extract.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-reduce-add-widen.ll (diff)llvm.src/test/CodeGen/X86/vector-reduce-add-widen.ll
The file was modified/llvm/trunk/test/CodeGen/X86/vector-reduce-add.ll (diff)llvm.src/test/CodeGen/X86/vector-reduce-add.ll
Revision 366267 by benhamilton:
[clang-format] Don't detect call to ObjC class method as C++11 attribute specifier

Summary:
Previously, clang-format detected something like the following as a C++11 attribute specifier.

  @[[NSArray class]]

instead of an array with an Objective-C method call inside. In general, when the attribute specifier checking runs, if it sees 2 identifiers in a row, it decides that the square brackets represent an Objective-C method call. However, here, `class` is tokenized as a keyword instead of an identifier, so this check fails.

To fix this, the attribute specifier first checks whether the first square bracket has an "@" before it. If it does, then that square bracket is not the start of a attribute specifier because it is an Objective-C array literal. (The assumption is that @[[.*]] is not valid C/C++.)

Contributed by rkgibson2.

Reviewers: benhamilton

Reviewed By: benhamilton

Subscribers: aaron.ballman, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D64632
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Format/TokenAnnotator.cpp (diff)clang.src/lib/Format/TokenAnnotator.cpp
The file was modified/cfe/trunk/unittests/Format/FormatTest.cpp (diff)clang.src/unittests/Format/FormatTest.cpp
Revision 366266 by domada:
[NFC][ScopBuilder] Move addUserContext to ScopBuilder

Scope of changes:
1) Moved addUserContext to ScopBuilder.
2) Moved command line option UserContextStr to ScopBuilder.

Differential Revision: https://reviews.llvm.org/D63740
Change TypePath in RepositoryPath in Workspace
The file was modified/polly/trunk/include/polly/ScopBuilder.h (diff)polly.src/include/polly/ScopBuilder.h
The file was modified/polly/trunk/include/polly/ScopInfo.h (diff)polly.src/include/polly/ScopInfo.h
The file was modified/polly/trunk/lib/Analysis/ScopBuilder.cpp (diff)polly.src/lib/Analysis/ScopBuilder.cpp
The file was modified/polly/trunk/lib/Analysis/ScopInfo.cpp (diff)polly.src/lib/Analysis/ScopInfo.cpp
Revision 366265 by mgehre:
[clang-tidy] initial version of readability-convert-member-functions-to-static

Summary:
Finds non-static member functions that can be made ``static``.

I have run this check (repeatedly) over llvm-project. It made 1708 member functions
``static``. Out of those, I had to exclude 22 via ``NOLINT`` because their address
was taken and stored in a variable of pointer-to-member type (e.g. passed to
llvm::StringSwitch).
It also made 243 member functions ``const``. (This is currently very conservative
to have no false-positives and can hopefully be extended in the future.)

You can find the results here: https://github.com/mgehre/llvm-project/commits/static_const_eval

Reviewers: alexfh, aaron.ballman

Subscribers: mgorny, xazax.hun, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D61749
Change TypePath in RepositoryPath in Workspace
The file was modified/clang-tools-extra/trunk/clang-tidy/readability/CMakeLists.txt (diff)clang-tools-extra.src/clang-tidy/readability/CMakeLists.txt
The file was added/clang-tools-extra/trunk/clang-tidy/readability/ConvertMemberFunctionsToStatic.cppclang-tools-extra.src/clang-tidy/readability/ConvertMemberFunctionsToStatic.cpp
The file was added/clang-tools-extra/trunk/clang-tidy/readability/ConvertMemberFunctionsToStatic.hclang-tools-extra.src/clang-tidy/readability/ConvertMemberFunctionsToStatic.h
The file was modified/clang-tools-extra/trunk/clang-tidy/readability/ReadabilityTidyModule.cpp (diff)clang-tools-extra.src/clang-tidy/readability/ReadabilityTidyModule.cpp
The file was modified/clang-tools-extra/trunk/docs/ReleaseNotes.rst (diff)clang-tools-extra.src/docs/ReleaseNotes.rst
The file was modified/clang-tools-extra/trunk/docs/clang-tidy/checks/list.rst (diff)clang-tools-extra.src/docs/clang-tidy/checks/list.rst
The file was added/clang-tools-extra/trunk/docs/clang-tidy/checks/readability-convert-member-functions-to-static.rstclang-tools-extra.src/docs/clang-tidy/checks/readability-convert-member-functions-to-static.rst
The file was added/clang-tools-extra/trunk/test/clang-tidy/readability-convert-member-functions-to-static.cppclang-tools-extra.src/test/clang-tidy/readability-convert-member-functions-to-static.cpp
Revision 366264 by dblaikie:
DWARF: Skip zero column for inline call sites

D64033 <https://reviews.llvm.org/D64033> added DW_AT_call_column for
inline sites. However, that change wasn't aware of "-gno-column-info".
To avoid adding column info when "-gno-column-info" is used, now
DW_AT_call_column is only added when we have non-zero column (when
"-gno-column-info" is used, column will be zero).

Patch by Wenlei He!

Differential Revision: https://reviews.llvm.org/D64784
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp (diff)llvm.src/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
The file was modified/llvm/trunk/test/DebugInfo/X86/fission-inline.ll (diff)llvm.src/test/DebugInfo/X86/fission-inline.ll
Revision 366263 by Louis Dionne:
[libcxx] Rejigger test for destroying delete feature-test macros

In r361572, we introduced library support for C++20 destroying delete
and decided to only define the library feature-test macro when the
compiler supports the underlying language feature. This patch reworks
the tests to mirror that.
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/test/std/language.support/support.dynamic/destroying_delete_t.pass.cpp (diff)libcxx.src/test/std/language.support/support.dynamic/destroying_delete_t.pass.cpp
Revision 366262 by domada:
[NFC][ScopBuilder] Move buildAliasChecks and its implementing methods to ScopBuilder

Scope of changes:
1) Moved buildAliasChecks to ScopBuilder.
2) Moved buildAliasGroup to ScopBuilder.
3) Moved buildAliasGroups to ScopBuilder.
4) Moved buildAliasGroupsForAccesses to ScopBuilder.
5) Moved splitAliasGroupsByDomain to ScopBuilder.
6) Moved addNonEmptyDomainConstraints to ScopBuilder.
7) Moved buildMinMaxAccess to ScopBuilder.
8) Moved calculateMinMaxAccess to ScopBuilder.
9) Moved getAccessDomain to ScopBuilder.
10) Moved command line options used only by buildAliasChecks functions to ScopBuilder.
11) Refactored buildAliasGroup function. Added addAliasGroup function to Scop class for pushing back calculated min/max accesses.
12) Added function incrementNumberOfAliasingAssumptions which increments number of statistic variable AssumptionsAliasing. AssumptionsAliasing variable is defined by STATISTIC macro inside ScopInfo.cpp and it is also used by function trackAssumption from Scop class.
13) Added reference to OptimizationRemarkEmitter to ScopBuilder class.
14) Moved calculateMinMaxAccess function to ScopBuilder class.

Differential Revision: https://reviews.llvm.org/D63693
Change TypePath in RepositoryPath in Workspace
The file was modified/polly/trunk/include/polly/ScopBuilder.h (diff)polly.src/include/polly/ScopBuilder.h
The file was modified/polly/trunk/include/polly/ScopInfo.h (diff)polly.src/include/polly/ScopInfo.h
The file was modified/polly/trunk/lib/Analysis/ScopBuilder.cpp (diff)polly.src/lib/Analysis/ScopBuilder.cpp
The file was modified/polly/trunk/lib/Analysis/ScopInfo.cpp (diff)polly.src/lib/Analysis/ScopInfo.cpp
Revision 366260 by domada:
[NFC][ScopBuilder] Move addRecordedAssumption to ScopBuilder

Scope of changes:
1) Moved addRecordedAssumptions to ScopBuilder.
2) Moved Assumption struct outside Scop class.
3) Refactored addRecordedAssumptions function. Replaced while loop by
for range loop.
4) Added function to clear processed Assumptions.

Differential Revision: https://reviews.llvm.org/D63572
Change TypePath in RepositoryPath in Workspace
The file was modified/polly/trunk/include/polly/ScopBuilder.h (diff)polly.src/include/polly/ScopBuilder.h
The file was modified/polly/trunk/include/polly/ScopInfo.h (diff)polly.src/include/polly/ScopInfo.h
The file was modified/polly/trunk/lib/Analysis/ScopBuilder.cpp (diff)polly.src/lib/Analysis/ScopBuilder.cpp
The file was modified/polly/trunk/lib/Analysis/ScopInfo.cpp (diff)polly.src/lib/Analysis/ScopInfo.cpp
Revision 366259 by Louis Dionne:
[libc++] Add missing UNSUPPORTED for CTAD tests

The tests for unordered_set and unordered_multiset were missing UNSUPPORTED
markup for Apple Clang 9.1, which is still being used on some CI bots.
Change TypePath in RepositoryPath in Workspace
The file was modified/libcxx/trunk/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/deduct.pass.cpp (diff)libcxx.src/test/std/containers/unord/unord.multiset/unord.multiset.cnstr/deduct.pass.cpp
The file was modified/libcxx/trunk/test/std/containers/unord/unord.set/unord.set.cnstr/deduct.pass.cpp (diff)libcxx.src/test/std/containers/unord/unord.set/unord.set.cnstr/deduct.pass.cpp
Revision 366258 by yln:
[TSan] Improve handling of stack pointer mangling in {set,long}jmp, pt.6

Cleanup ARM64 assembly after removing unnecessary computation of mangled
stack pointer in previous commit.
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/tsan/rtl/tsan_rtl_aarch64.S (diff)compiler-rt.src/lib/tsan/rtl/tsan_rtl_aarch64.S
Revision 366257 by arsenm:
AMDGPU/GlobalISel: Select G_ASHR
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUGISel.td (diff)llvm.src/lib/Target/AMDGPU/AMDGPUGISel.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/SOPInstructions.td (diff)llvm.src/lib/Target/AMDGPU/SOPInstructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/VOP2Instructions.td (diff)llvm.src/lib/Target/AMDGPU/VOP2Instructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/VOP3Instructions.td (diff)llvm.src/lib/Target/AMDGPU/VOP3Instructions.td
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-ashr.mir (diff)llvm.src/test/CodeGen/AMDGPU/GlobalISel/inst-select-ashr.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-ashr.s16.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/inst-select-ashr.s16.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-ashr.v2s16.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/inst-select-ashr.v2s16.mir
Revision 366256 by arsenm:
AMDGPU/GlobalISel: Select G_LSHR
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/SOPInstructions.td (diff)llvm.src/lib/Target/AMDGPU/SOPInstructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/VOP2Instructions.td (diff)llvm.src/lib/Target/AMDGPU/VOP2Instructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/VOP3Instructions.td (diff)llvm.src/lib/Target/AMDGPU/VOP3Instructions.td
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-lshr.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/inst-select-lshr.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-lshr.s16.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/inst-select-lshr.s16.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-lshr.v2s16.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/inst-select-lshr.v2s16.mir
Revision 366255 by jsji:
[PowerPC][HTM] Fix impossible reg-to-reg copy assert with ttest builtin

Summary:
This is exposed by our internal testing.
The reduced testcase will assert with "Impossible reg-to-reg copy"

We can't use COPY to do 32-bit to 64-bit conversion.

Reviewers: kbarton, hfinkel, nemanjai

Reviewed By: hfinkel

Subscribers: hiraditya, MaskRay, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D64499
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/PowerPC/PPCInstrHTM.td (diff)llvm.src/lib/Target/PowerPC/PPCInstrHTM.td
The file was added/llvm/trunk/test/CodeGen/PowerPC/htm-ttest.llllvm.src/test/CodeGen/PowerPC/htm-ttest.ll
Revision 366254 by arsenm:
AMDGPU/GlobalISel: Select G_SHL

I think this manages to not break the DAG handling with the divergent
predicates because the stadalone divergent patterns end up with a
higher priority than the pattern on the instruction definition.

The 16-bit versions don't work yet.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/SOPInstructions.td (diff)llvm.src/lib/Target/AMDGPU/SOPInstructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/VOP2Instructions.td (diff)llvm.src/lib/Target/AMDGPU/VOP2Instructions.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/VOP3Instructions.td (diff)llvm.src/lib/Target/AMDGPU/VOP3Instructions.td
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-shl.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/inst-select-shl.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-shl.s16.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/inst-select-shl.s16.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-shl.v2s16.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/inst-select-shl.v2s16.mir
Revision 366253 by hctim:
[GWP-ASan] Add thread ID to PRNG seed.

Summary:
Adds thread ID to PRNG seed for increased entropy. In particular, this allows
multiple runs in quick succession that will have different PRNG seeds, allowing
for better demos/testing.

Reviewers: kcc

Reviewed By: kcc

Subscribers: kubamracek, #sanitizers, llvm-commits

Tags: #sanitizers, #llvm

Differential Revision: https://reviews.llvm.org/D64453
Change TypePath in RepositoryPath in Workspace
The file was modified/compiler-rt/trunk/lib/gwp_asan/guarded_pool_allocator.h (diff)compiler-rt.src/lib/gwp_asan/guarded_pool_allocator.h
The file was modified/compiler-rt/trunk/lib/gwp_asan/random.cpp (diff)compiler-rt.src/lib/gwp_asan/random.cpp
Revision 366252 by rampitec:
[AMDGPU] Change register type for v32 vectors

When it is AReg_1024 this results in unnecessary copying into
AGPRs of a 32 element vectors even though they are not intended
for an mfma instruction.

Differential Revision: https://reviews.llvm.org/D64815
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIISelLowering.cpp (diff)llvm.src/lib/Target/AMDGPU/SIISelLowering.cpp
The file was added/llvm/trunk/test/CodeGen/AMDGPU/v1024.llllvm.src/test/CodeGen/AMDGPU/v1024.ll
Revision 366251 by hliao:
Fix -Wreturn-type warning. NFC.
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Remarks/RemarkParser.cpp (diff)llvm.src/lib/Remarks/RemarkParser.cpp
Revision 366250 by arsenm:
AMDGPU: Fix some missing GCCBuiltin declarations
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/IR/IntrinsicsAMDGPU.td (diff)llvm.src/include/llvm/IR/IntrinsicsAMDGPU.td
Revision 366249 by arsenm:
AMDGPU/GlobalISel: Fix selection of private stores
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/BUFInstructions.td (diff)llvm.src/lib/Target/AMDGPU/BUFInstructions.td
The file was added/llvm/trunk/test/CodeGen/AMDGPU/GlobalISel/inst-select-store-private.mirllvm.src/test/CodeGen/AMDGPU/GlobalISel/inst-select-store-private.mir
Revision 366248 by arsenm:
AMDGPU/GlobalISel: Select private loads
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUGISel.td (diff)llvm.src/lib/Target/AMDGPU/AMDGPUGISel.td
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp (diff)llvm.src/lib/Target/AMDGPU/AMDGPUInstructionSelector.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/AMDGPUInstructionSelector.h (diff)llvm.src/lib/Target/AMDGPU/AMDGPUInstructionSelector.h
The file was added