SuccessChanges

Summary

  1. Revert r370635, it caused PR43241. (details)
  2. [Alignment] fix dubious min function alignment (details)
  3. libclang depends on ClangDriverOptions since r352803 (details)
  4. [NFC][CodeGen][UBSan] EmitCheckedInBoundsGEP(): add some comments to (details)
  5. [NFC][CodeGen][UBSan] EmitCheckedInBoundsGEP(): refactor (details)
  6. [NFC][CodeGen][UBSan] EmitCheckedInBoundsGEP(): pass a vector to (details)
  7. [Alignment][NFC] Use Align with TargetLowering::setPrefLoopAlignment (details)
  8. [Object] remove struct constructor, NFC (details)
  9. [Alignment][NFC] Use Align with TargetLowering::setPrefFunctionAlignment (details)
  10. [ELF][test] Simplify and reorganize tests (details)
  11. [AMDGPU] Enable constant offset promotion to immediate operand for VMEM (details)
  12. Revert "Revert r370635, it caused PR43241." (details)
  13. Reland D66717 [ELF] Do not ICF two sections with different output (details)
  14. [ARM] Sink add/mul(shufflevector(insertelement())) for MVE instruction (details)
  15. [SimplifyLibCalls] handle pow(x,-0.0) before it can assert (PR43233) (details)
  16. [Diagnostics] Refactor code for -Wsizeof-pointer-div, catch more cases; (details)
  17. [NFC] Added new tests for r371222 (details)
  18. [InstCombine] pow(x, +/- 0.0) -> 1.0 (details)
  19. [ELF] Replace error() with errorOrWarn() for the ASSERT command (details)
  20. [NFCI] Unbreak buildbots (details)
  21. [AArch64][GlobalISel] Always fall back on tail calls with -tailcallopt (details)
  22. [ConstantFolding] Refactor function match for better speed (NFC) (details)
  23. [ARM] Add patterns for VMUL with q and r registers (details)
  24. [ARM] Add patterns for VADD with q and r registers (details)
  25. [ARM] Add patterns for VSUB with q and r registers (details)
  26. [Remarks] Add support for internalizing a remark in a string table (details)
  27. [lldb] Small optimization of FormatMap::Delete and FormatMap::Get (details)
  28. [FPEnv] Teach the IRBuilder about constrained FPToSI and FPToUI. (details)
  29. [ConstantFolding] Refactor functions not available before C99 (NFC) (details)
  30. [PowerPC][XCOFF] Verify symbol table in xcoff object files. [NFC] (details)
  31. [X86] Teach FixupBWInsts to turn (details)
  32. [LifetimeAnalysis] don't use raw string literals in macros (details)
  33. [X86] Use MOVZX16rr8/MOVZXrm8 when extending input for i8 udivrem. (details)
  34. [X86] Use MOVSX by default instead of CBW to extend i8 to AX for i8 (details)
  35. [llvm-jitlink] Add optional slab allocator for testing locality (details)
  36. [ORC] Make sure RPC channel-send is called in blocking calls and (details)
  37. [ConstantFolding] Add new test cases for transcendentals (NFC) (details)
  38. [PowerPC][XCOFF] Remove basic test. [NFC] (details)
  39. [llvm-ifs] Improving detection of PlatformKind from triple for TBD (details)
  40. AMDGPU: Fix typo (details)
  41. [clang][Index][NFC] Put IndexingOptions to a separate header (details)
  42. Remove dead .seh_stackalloc parsing method in X86AsmParser (details)
  43. Update comment for <template-param-decl> mangling to match extended (details)
  44. GlobalISel: Support physical register inputs in patterns (details)
  45. GlobalISel: Add G_FMAD instruction (details)
  46. [ORC] Add a missing #include atomic. (details)
  47. [analyzer] pr43179: Make CallDescription defensive against C variadic (details)
  48. [analyzer] Add minimal support for fix-it hints. (details)
  49. [Core] Remove use of ClangASTContext in DumpDataExtractor (details)
  50. [test] Add a FIXME test for stop-command-source-on-error (details)
  51. [X86] Replace -mcpu with -mattr on some tests. (details)
  52. [X86] Add a AVX512VBMI command line to min-legal-vector-width.ll. Always (details)
  53. [IR] CallBrInst: scan+update arg list when indirect dest list changes (details)
  54. [ORC][RPC] Join server thread before checking condition in unit test. (details)
  55. [InstCombine] Refactor substitution of instruction in the parent BB (details)
  56. [AArch64][GlobalISel] Enable the localizer for optimized builds. (details)
  57. Update lld tests dynamic-list.s and symbol-override.s to use llvm-nm (details)
  58. Use musttail for variadic method thunks when possible (details)
  59. Implement demangling support for C++20 lambda expression extensions. (details)
  60. Synchronize LLVM's copy of libc++abi's demangler with the libc++abi (details)
  61. [Sema] Diagnose default-initialization, destruction, and copying of (details)
  62. [Sema][ObjC] Mark C union fields that have non-trivial ObjC ownership (details)
  63. Fix thunks.cpp test, don't FileCheck for anon namespace id (details)
  64. [clang][DependencyFileGenerator] Fix missing -MT option handling (details)
  65. Long timeouts for the MacOSX SystemRuntime plugins under ASAN; else (details)
  66. [llvm-objcopy] Rename SHOffset (e_shoff) field to SHOff. NFC (details)
  67. [X86] Autogenerate fp128-libcalls.ll (details)
  68. [X86] Add tests for fp128 frem, sqrt, sin, and cos. (details)
  69. Change TargetLibraryInfo analysis passes to always require Function (details)
  70. Remove stale TLI Module level pass registration (details)
  71. [CodeGen] Fix typos to run tests. NFC. (details)
  72. Revert [CodeGen] Fix typos to run tests. NFC. (details)
  73. [git-llvm] Do not reinvent `@{upstream}` (details)
  74. [Attributor] ValueSimplify Abstract Attribute (details)
  75. [ELF][test] Improve LTO tests (details)
  76. Replicate the change "[Alignment][NFC] Use Align with (details)
  77. [SimplifyCFG] SpeculativelyExecuteBB(): It's SpeculatedInstructions, not (details)
  78. [SimplifyCFG][NFC] Regenerate merge-cond-stores* tests (details)
  79. [SimplifyCFG][NFC] Show that we don't consider the cost when merging (details)
  80. [Attributor] Make unimplemented method pure virtual. (details)
  81. [ELF][test] Improve tests (details)
  82. [SimplifyCFG][NFC] Make merge-cond-stores-cost.ll X86-specific, and (details)
  83. Fix MSVC "32-bit shift implicitly converted to 64 bits" warnings. NFCI. (details)
  84. [DebugInfo] Pre-commit of test case for DW_OP_breg/DW_OP_fbreg folds (details)
  85. [DwarfExpression] Disallow some rewrites to avoid undefined behavior (details)
  86. [X86] Add test for PR43230; NFC (details)
  87. [LVI] Look through extractvalue of insertvalue (details)
  88. [X86] Fix pshuflw formation from repeated shuffle mask (PR43230) (details)
  89. [Intrinsic] Add the llvm.umul.fix.sat intrinsic (details)
  90. [CodeGen] Handle SMULFIXSAT with scale zero in (details)
Commit 8455294f2ac13d587b13d728038a9bffa7185f2b by nicolasweber
Revert r370635, it caused PR43241.
llvm-svn: 371202
The file was modifiedlld/test/ELF/linkerscript/subalign.s
The file was modifiedlld/ELF/Driver.cpp
The file was modifiedlld/ELF/Writer.h
The file was modifiedlld/ELF/ICF.cpp
The file was modifiedlld/test/ELF/linkerscript/early-assign-symbol.s
The file was modifiedlld/ELF/LinkerScript.cpp
The file was modifiedlld/ELF/Writer.cpp
The file was removedlld/test/ELF/linkerscript/icf-output-sections.s
The file was modifiedlld/ELF/LinkerScript.h
Commit 5d870c2ec0a631f41ec4387e9d3c6073fea9c178 by gchatelet
[Alignment] fix dubious min function alignment
Summary: This was discovered while introducing the llvm::Align type. The
original setMinFunctionAlignment used to take alignment as log2, looking
at the comment it seems like instructions are to be 2-bytes aligned and
not 4-bytes aligned.
Reviewers: uweigand
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67271
llvm-svn: 371204
The file was modifiedllvm/lib/Target/SystemZ/SystemZISelLowering.cpp
Commit 06487b010d48c36c7714ee083ed38dff65711812 by nicolasweber
libclang depends on ClangDriverOptions since r352803
Without this, the build would sometimes fail with
    In file included from clang/tools/libclang/CIndexer.cpp:17:
   In file included from clang/include/clang/Driver/Driver.h:15:
   clang/include/clang/Driver/Options.h:44:10: fatal error:
       'clang/Driver/Options.inc' file not found
   #include "clang/Driver/Options.inc"
            ^~~~~~~~~~~~~~~~~
if Options.inc wasn't generated before libclang was built by
coincidence.
(In the GN build, this works because lib/Driver there declares the dep
on tablegen as a public_dep since the generated file is part of Driver's
public interface, and then things work out automatically without every
client of Driver having to be careful.)
llvm-svn: 371205
The file was modifiedclang/tools/libclang/CMakeLists.txt
Commit 624620ff57cd725af724fc760d3b51ce926c529f by lebedev.ri
[NFC][CodeGen][UBSan] EmitCheckedInBoundsGEP(): add some comments to
pointer-overflow check
It's rather eye-twiching, some comments may help here..
This was originally part of https://reviews.llvm.org/D67122
llvm-svn: 371206
The file was modifiedclang/lib/CodeGen/CGExprScalar.cpp
Commit 8f03dcdc91326fcccaa7aabe2fe898fd3c9c4e58 by lebedev.ri
[NFC][CodeGen][UBSan] EmitCheckedInBoundsGEP(): refactor
EmitGEPOffsetInBytes() helper
It shouldn't really be inlined into the EmitCheckedInBoundsGEP().
Refactoring it beforehand will make follow-up changes more obvious.
This was originally part of https://reviews.llvm.org/D67122
llvm-svn: 371207
The file was modifiedclang/lib/CodeGen/CGExprScalar.cpp
Commit f1d33842b9d0701bf31a51c21c8bf9af5dd79138 by lebedev.ri
[NFC][CodeGen][UBSan] EmitCheckedInBoundsGEP(): pass a vector to
EmitCheck()
Will be easier to add a new 'check' in a follow-up.
This was originally part of https://reviews.llvm.org/D67122
llvm-svn: 371208
The file was modifiedclang/lib/CodeGen/CGExprScalar.cpp
Commit 9fcf066d0cd2fc283e410acc19b110c90f43e26c by gchatelet
[Alignment][NFC] Use Align with TargetLowering::setPrefLoopAlignment
Summary: This is patch is part of a series to introduce an Alignment
type. See this thread for context:
http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this
patch for the introduction of the type: https://reviews.llvm.org/D64790
Reviewers: courbet
Subscribers: nemanjai, hiraditya, kbarton, MaskRay, jsji, ychen,
llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67278
llvm-svn: 371210
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
Commit 4f8d005831a0b6cedd4935579dda2ac97518e4d9 by cyndy_ishida
[Object] remove struct constructor, NFC
Summary: make POD struct by removing ctors
Reviewers: avl, dblaikie
Reviewed By: dblaikie
Subscribers: ributzka, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67251
llvm-svn: 371211
The file was modifiedllvm/include/llvm/Object/ObjectFile.h
Commit ad1cea0ddafe7494e9726623bd08d1814c8cf19e by gchatelet
[Alignment][NFC] Use Align with TargetLowering::setPrefFunctionAlignment
Summary: This is patch is part of a series to introduce an Alignment
type. See this thread for context:
http://lists.llvm.org/pipermail/llvm-dev/2019-July/133851.html See this
patch for the introduction of the type: https://reviews.llvm.org/D64790
Reviewers: courbet
Subscribers: nemanjai, javed.absar, hiraditya, kbarton, asb, rbar,
johnrusso, simoncook, apazos, sabuasal, niosHD, jrtc27, MaskRay, zzheng,
edward-jones, rogfer01, MartinMosbeck, brucehoult, the_o, PkmX, jocewei,
jsji, s.egerton, pzheng, ychen, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67267
llvm-svn: 371212
The file was modifiedllvm/lib/Target/BPF/BPFISelLowering.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonISelLowering.cpp
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/lib/Target/Lanai/LanaiISelLowering.cpp
The file was modifiedllvm/lib/Target/SystemZ/SystemZISelLowering.cpp
The file was modifiedllvm/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modifiedllvm/lib/Target/MSP430/MSP430ISelLowering.cpp
The file was modifiedllvm/lib/Target/XCore/XCoreISelLowering.cpp
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/lib/Target/PowerPC/PPCISelLowering.cpp
The file was modifiedllvm/lib/Target/RISCV/RISCVISelLowering.cpp
Commit 8f10a5f42d5b391efe57a982c98de5e1ae245e4d by maskray
[ELF][test] Simplify and reorganize tests
Add file-level comments Delete insignificant addresses to make them more
tolerant to layout changes Simplify test output Delete simple Inputs/*.s
files
Delete version-script-copy-rel.s - covered by verdef-defaultver.s Delete
version-wildcard.test - covered by version-script-glob.s
llvm-svn: 371213
The file was modifiedlld/test/ELF/dynamic.s
The file was modifiedlld/test/ELF/version-script.s
The file was modifiedlld/test/ELF/edata-no-bss.s
The file was removedlld/test/ELF/relocation-size-shared.s
The file was modifiedlld/test/ELF/relocation-relative-weak.s
The file was removedlld/test/ELF/version-wildcard.test
The file was addedlld/test/ELF/gc-sections-string.s
The file was modifiedlld/test/ELF/relocation-copy-relro.s
The file was modifiedlld/test/ELF/relocation-undefined-weak.s
The file was addedlld/test/ELF/x86-64-reloc-size.s
The file was addedlld/test/ELF/x86-64-tls-ie.s
The file was modifiedlld/test/ELF/copy-rel-pie.s
The file was modifiedlld/test/ELF/emit-relocs-merge.s
The file was modifiedlld/test/ELF/abs-hidden.s
The file was removedlld/test/ELF/relocation-size.s
The file was modifiedlld/test/ELF/copy-rel-abs.s
The file was modifiedlld/test/ELF/discard-merge-locals.s
The file was removedlld/test/ELF/Inputs/abs-hidden.s
The file was modifiedlld/test/ELF/ctors_dtors_priority.s
The file was modifiedlld/test/ELF/stdout.s
The file was removedlld/test/ELF/Inputs/ehframe-relocation.s
The file was modifiedlld/test/ELF/version-script-glob.s
The file was modifiedlld/test/ELF/dynamic-list.s
The file was removedlld/test/ELF/dynamic-got-rela.s
The file was modifiedlld/test/ELF/dynamic-reloc-index.s
The file was modifiedlld/test/ELF/dynamic-reloc.s
The file was removedlld/test/ELF/string-gc.s
The file was modifiedlld/test/ELF/allow-multiple-definition.s
The file was removedlld/test/ELF/tls-got.s
The file was removedlld/test/ELF/version-script-copy-rel.s
The file was modifiedlld/test/ELF/copy-rel-large.s
The file was modifiedlld/test/ELF/visibility.s
The file was modifiedlld/test/ELF/x86-64-tls-ie-opt-local.s
The file was modifiedlld/test/ELF/version-script-weak.s
The file was addedlld/test/ELF/x86-64-reloc-size-shared.s
The file was modifiedlld/test/ELF/symbol-override.s
The file was modifiedlld/test/ELF/ehframe-relocation.s
The file was modifiedlld/test/ELF/relocation-copy-flags.s
The file was modifiedlld/test/ELF/tls-offset.s
The file was modifiedlld/test/ELF/dynamic-list-wildcard.s
The file was modifiedlld/test/ELF/relro-non-contiguous.s
The file was addedlld/test/ELF/apply-dynamic-relocs.s
The file was modifiedlld/test/ELF/relro-tls.s
The file was modifiedlld/test/ELF/bss-start-common.s
Commit e8ade89bb3803fe07534b20db6b35bbc7ffc42e3 by Valery.Pykhtin
[AMDGPU] Enable constant offset promotion to immediate operand for VMEM
stores
Differential revision: https://reviews.llvm.org/D66958
llvm-svn: 371214
The file was modifiedllvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/promote-constOffset-to-imm.mir
Commit 5d9f419a2e01c437a35899952d3342cc96a7d9e1 by maskray
Revert "Revert r370635, it caused PR43241."
This reverts commit 50d2dca22b3b05d0ee4883b0cbf93d7d15f241fc.
llvm-svn: 371215
The file was modifiedlld/ELF/Writer.h
The file was modifiedlld/test/ELF/linkerscript/early-assign-symbol.s
The file was modifiedlld/ELF/LinkerScript.h
The file was addedlld/test/ELF/linkerscript/icf-output-sections.s
The file was modifiedlld/ELF/Driver.cpp
The file was modifiedlld/ELF/ICF.cpp
The file was modifiedlld/test/ELF/linkerscript/subalign.s
The file was modifiedlld/ELF/LinkerScript.cpp
The file was modifiedlld/ELF/Writer.cpp
Commit 8d30c1dcec2a935e0b1cffc26fdc6054ff101f53 by maskray
Reland D66717 [ELF] Do not ICF two sections with different output
sections (by SECTIONS commands)
Recommit r370635 (reverted by r371202), with one change: move
addOrphanSections() before ICF.
Before, orphan sections in two different partitions may be folded and
moved to the main partition.
Now, InputSection->OutputSection assignment for orphans happens before
ICF. ICF does not fold input sections with different output sections.
With the PR43241 reproduce,
`llvm-objcopy --extract-partition libvr.so libchrome__combined.so
libvr.so` => no error
Updated description:
Fixes PR39418. Complements D47241 (the non-linker-script case).
processSectionCommands() assigns input sections to output sections. ICF
is called before it, so .text.foo and .text.bar may be folded even if
their output sections are made different by SECTIONS commands.
``` markLive<ELFT>() doIcf<ELFT>()                      // During ICF,
we don't know the output sections writeResult()
combineEhSections<ELFT>()
script->processSectionCommands() // InputSection -> OutputSection
assignment
```
This patch splits processSectionCommands() into processSectionCommands()
and processSymbolAssignments(), and moves
processSectionCommands()/addOrphanSections() before ICF:
``` markLive<ELFT>() combineEhSections<ELFT>()
script->processSectionCommands() script->addOrphanSections();
doIcf<ELFT>()                      // should remove folded input
sections writeResult()
script->processSymbolAssignments()
```
An alternative approach is to unfold a section `sec` in
processSectionCommands() when we find `sec` and `sec->repl` belong to
different output sections. I feel this patch is superior because this
can fold more sections and the decouple of
SectionCommand/SymbolAssignment gives flexibility:
* An ExprValue can't be evaluated before its section is assigned to an
output section -> we can delete getOutputSectionVA and simplify
another place where we had to check if the output section is null.
Moreover, a case in linkerscript/early-assign-symbol.s can be handled
now.
* processSectionCommands/processSymbolAssignments can be freely moved
around.
llvm-svn: 371216
The file was modifiedlld/ELF/Writer.cpp
The file was modifiedlld/ELF/ICF.cpp
The file was modifiedlld/test/ELF/partition-icf.s
The file was modifiedlld/ELF/Driver.cpp
Commit f1cdd95a2fe79fbcd7fd440509a754bc3afaf088 by sam.tebbs
[ARM] Sink add/mul(shufflevector(insertelement())) for MVE instruction
selection
This patch sinks add/mul(shufflevector(insertelement())) into the basic
block in which they are used so that they can then be selected together.
This is useful for various MVE instructions, such as vmla and others
that take R registers.
Loop tests have been added to the vmla test file to make sure vmlas are
generated in loops.
Differential revision: https://reviews.llvm.org/D66295
llvm-svn: 371218
The file was addedllvm/test/Transforms/CodeGenPrepare/ARM/sink-add-mul-shufflevector.ll
The file was modifiedllvm/test/CodeGen/Thumb2/mve-vmla.ll
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
Commit 4f0e429acca3b224b7b58fb89899c2de08a2e4c6 by spatel
[SimplifyLibCalls] handle pow(x,-0.0) before it can assert (PR43233)
https://bugs.llvm.org/show_bug.cgi?id=43233
llvm-svn: 371221
The file was modifiedllvm/test/Transforms/InstCombine/pow-4.ll
The file was modifiedllvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
Commit fd07568074689654e78ef38e700f9a019ffa42d3 by david.bolvansky
[Diagnostics] Refactor code for -Wsizeof-pointer-div, catch more cases;
also add -Wsizeof-array-div
Previously, -Wsizeof-pointer-div failed to catch: const int *r;
sizeof(r) / sizeof(int);
Now fixed. Also introduced -Wsizeof-array-div which catches bugs like:
sizeof(r) / sizeof(short);
(Array element type does not match type of sizeof operand).
llvm-svn: 371222
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/test/Sema/div-sizeof-ptr.cpp
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/lib/Sema/SemaChecking.cpp
Commit d1cc181d03b3c0d1f0e500f5826562a6e4667018 by david.bolvansky
[NFC] Added new tests for r371222
llvm-svn: 371223
The file was addedclang/test/Sema/div-sizeof-array.cpp
Commit 52614dfc7fd09d3de608068415eaa632c21c661d by JF Bastien
[InstCombine] pow(x, +/- 0.0) -> 1.0
Summary: This isn't an important optimization at all... We're already
doing:
pow(x, 0.0) -> 1.0 My patch merely teaches instcombine that -0.0 does
the same.
However, doing this fixes an AMAZING bug! Compile this program:
  extern "C" double pow(double, double);
double boom(double base) {
   return pow(base, -0.0);
}
With:
clang++ ~/Desktop/fast-math.cpp -ffast-math -O2 -S
And clang will crash with a signal. Wow, fast math is so fast it ICEs
the compiler! Arguably, the generated math is infinitely fast.
What's actually happening is that we recurse infinitely in getPow. In
debug we hit its assertion:
assert(Exp != 0 && "Incorrect exponent 0 not handled");
We avoid this entire mess if we instead recognize that an exponent of
positive and negative zero yield 1.0.
A separate commit, r371221, fixed the same problem. This only contains
the added tests.
<rdar://problem/54598300>
Reviewers: scanon
Subscribers: hiraditya, jkorous, dexonsmith, ributzka, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67248
llvm-svn: 371224
The file was addedllvm/test/Transforms/InstCombine/pow-0.ll
Commit 2682bc3c9d1ec7da324bedfa46fce537797b5a49 by maskray
[ELF] Replace error() with errorOrWarn() for the ASSERT command
Summary: ld.bfd produces an output with --noinhibit-exec when an ASSERT
fails. Use errorOrWarn() so that we can produce an output as well.
An interesting case is that symbol assignments may execute multiple
times, so we probably want to suppress errors for non-final runs.
Reviewed By: peter.smith
Differential Revision: https://reviews.llvm.org/D67285
llvm-svn: 371225
The file was modifiedlld/test/ELF/linkerscript/assert.s
The file was modifiedlld/ELF/ScriptParser.cpp
Commit 454e40eaf328fe34cda7f24d33a1f47060b5ee1a by david.bolvansky
[NFCI] Unbreak buildbots
llvm-svn: 371226
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was removedclang/test/Sema/div-sizeof-array.cpp
Commit 121d9114f5676f676095d5d6f1988abe870549c3 by Jessica Paquette
[AArch64][GlobalISel] Always fall back on tail calls with -tailcallopt
-tailcallopt requires that we perform different stack adjustments than
with sibling calls. For example, the `@caller_to0_from8` function in
test/CodeGen/AArch64/tail-call.ll requires that we adjust SP. Without
-tailcallopt, this adjustment does not happen. With it, however, it is
expected.
So, to ensure that adding sibling call support doesn't break
-tailcallopt, make CallLowering always fall back on possible tail calls
when -tailcallopt is passed in.
Update test/CodeGen/AArch64/tail-call.ll with a GlobalISel line to make
sure that we don't differ from the SDAG implementation at any point.
Differential Revision: https://reviews.llvm.org/D67245
llvm-svn: 371227
The file was modifiedllvm/test/CodeGen/AArch64/tail-call.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64CallLowering.cpp
Commit 6f1369755dcd2feebf44fbfdbb7dbcad09de67c7 by e.menezes
[ConstantFolding] Refactor function match for better speed (NFC)
Use an `enum` instead of string comparison to match the candidate
function.
llvm-svn: 371228
The file was modifiedllvm/lib/Analysis/ConstantFolding.cpp
Commit 9bf27928e17a5effe69cf7afd6297fb6c8ec4c7e by oliver.cruickshank
[ARM] Add patterns for VMUL with q and r registers
Added support for VMUL to use an r register, this reduces pressure on
the q registers.
llvm-svn: 371229
The file was modifiedllvm/lib/Target/ARM/ARMInstrMVE.td
The file was addedllvm/test/CodeGen/Thumb2/mve-vmulqr.ll
Commit 3aed95af4ecdaa9fd76cc9c617c55f4bfbc068b9 by oliver.cruickshank
[ARM] Add patterns for VADD with q and r registers
Added support for VADD to use q and r registers, which reduces pressure
on q registers.
llvm-svn: 371230
The file was modifiedllvm/lib/Target/ARM/ARMInstrMVE.td
The file was addedllvm/test/CodeGen/Thumb2/mve-vaddqr.ll
Commit a050307c0572213efa40ffe8a55cfd4b15387543 by oliver.cruickshank
[ARM] Add patterns for VSUB with q and r registers
Added patterns for VSUB to support q and r registers, which reduces
pressure on q registers.
llvm-svn: 371231
The file was addedllvm/test/CodeGen/Thumb2/mve-vsubqr.ll
The file was modifiedllvm/lib/Target/ARM/ARMInstrMVE.td
Commit e14c0c5ae0112e714c7f83a45753116b871fbfaf by francisvm
[Remarks] Add support for internalizing a remark in a string table
In order to keep remarks around, we need to make them tied to a string
table.
Users then can delete the parser and rely on the string table to keep
the memory of the strings alive and deduplicated.
llvm-svn: 371233
The file was modifiedllvm/include/llvm/Remarks/RemarkStringTable.h
The file was modifiedllvm/lib/Remarks/RemarkStringTable.cpp
The file was modifiedllvm/unittests/Remarks/RemarksAPITest.cpp
Commit b1dcbf1b164762018e82cb834bfaf9e0230155b7 by jan.kratochvil
[lldb] Small optimization of FormatMap::Delete and FormatMap::Get
llvm-svn: 371234
The file was modifiedlldb/include/lldb/DataFormatters/FormattersContainer.h
Commit fab40fce3ffecc3f93068a15e370c0a1abfdb8d0 by kevin.neal
[FPEnv] Teach the IRBuilder about constrained FPToSI and FPToUI.
The IRBuilder doesn't know that the two floating point to integer
instructions have constrained equivalents. This patch adds 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/D67291
llvm-svn: 371235
The file was modifiedllvm/include/llvm/IR/IRBuilder.h
The file was modifiedllvm/unittests/IR/IRBuilderTest.cpp
Commit 7feb812ccde772bfe42434748dcc8ed4aca0ae60 by e.menezes
[ConstantFolding] Refactor functions not available before C99 (NFC)
Note the cases when calling a function at compile time may fail if the
host does not support the C99 run time library.
llvm-svn: 371236
The file was modifiedllvm/lib/Analysis/ConstantFolding.cpp
Commit 74966aca3559869b8c5b08fb719e5947f5c84dbf by sfertile
[PowerPC][XCOFF] Verify symbol table in xcoff object files. [NFC]
Extend the common/local-common testing for object files to also verify
the symbol table now that the needed functionality has landed in
llvm-readobj.
Differential Revision: https://reviews.llvm.org/D66944
llvm-svn: 371237
The file was modifiedllvm/test/CodeGen/PowerPC/aix-xcoff-common.ll
The file was modifiedllvm/test/CodeGen/PowerPC/aix-xcoff-lcomm.ll
Commit 0364d89b6d60e305ffec8bae74e9564f4e9355f2 by craig.topper
[X86] Teach FixupBWInsts to turn
MOVSX16rr8/MOVZX16rr8/MOVSX16rm8/MOVZX16rm8 into their 32-bit dest
equivalents when the upper part of the register is dead.
llvm-svn: 371240
The file was modifiedllvm/test/CodeGen/X86/fast-isel-divrem.ll
The file was modifiedllvm/lib/Target/X86/X86FixupBWInsts.cpp
Commit 4934f013b12b1a8d35efa69165c17eed92c52ff9 by M.Gehre
[LifetimeAnalysis] don't use raw string literals in macros
They broke the AArch64 bots (gcc does not support it)
llvm-svn: 371241
The file was modifiedclang/unittests/Sema/GslOwnerPointerInference.cpp
Commit 22b35c4291d2d90db27cac4ccf5c21f619ff49af by craig.topper
[X86] Use MOVZX16rr8/MOVZXrm8 when extending input for i8 udivrem.
We can rely on X86FixupBWInsts to turn these into MOVZX32. This
simplifies a follow up commit to use MOVSX for i8 sdivrem with a late
optimization to use CBW when register allocation works out.
llvm-svn: 371242
The file was modifiedllvm/test/CodeGen/X86/anyext.ll
The file was modifiedllvm/test/CodeGen/X86/divrem.ll
The file was modifiedllvm/test/CodeGen/X86/scalar_widen_div.ll
The file was modifiedllvm/test/CodeGen/X86/2008-09-11-CoalescerBug2.ll
The file was modifiedllvm/test/CodeGen/X86/bypass-slow-division-32.ll
The file was modifiedllvm/test/CodeGen/X86/urem-power-of-two.ll
The file was modifiedllvm/test/CodeGen/X86/div-rem-pair-recomposition-unsigned.ll
The file was modifiedllvm/lib/Target/X86/X86ISelDAGToDAG.cpp
The file was modifiedllvm/test/CodeGen/X86/bypass-slow-division-tune.ll
The file was modifiedllvm/test/CodeGen/X86/divrem8_ext.ll
Commit 7bb433c87b602a181a9e6ee08e38717a63b6f478 by craig.topper
[X86] Use MOVSX by default instead of CBW to extend i8 to AX for i8
sdivrem.
We can use a MOVSX16 here then rely on FixupBWInst to change to MOVSX32
if the upper bits are dead. With a special case to not promote if it
could be turned into CBW.
Then we can rely on X86MCInstLower to turn the MOVSX into CBW very late
if register allocation worked out.
Using MOVSX gives an opportunity to use the MOVSX as a both a copy and a
sign extend since the input and output register aren't tied together.
Differential Revision: https://reviews.llvm.org/D67192
llvm-svn: 371243
The file was modifiedllvm/test/CodeGen/X86/divrem8_ext.ll
The file was modifiedllvm/test/CodeGen/X86/divrem.ll
The file was modifiedllvm/test/CodeGen/X86/div-rem-pair-recomposition-signed.ll
The file was modifiedllvm/lib/Target/X86/X86ISelDAGToDAG.cpp
The file was modifiedllvm/test/CodeGen/X86/2011-10-19-LegelizeLoad.ll
The file was modifiedllvm/test/CodeGen/X86/vector-idiv-sdiv-128.ll
The file was modifiedllvm/test/CodeGen/X86/scalar_widen_div.ll
Commit 335676ee62167c021c17b90489b49c1015116556 by Lang Hames
[llvm-jitlink] Add optional slab allocator for testing locality
optimizations.
The llvm-jitlink utility now accepts a '-slab-allocate <size>' option.
If given, llvm-jitlink will use a slab-based memory manager rather than
the default InProcessMemoryManager. Using a slab allocator will allow
reliable testing of future locality based optimizations (e.g. PLT and
GOT elimination) in JITLink.
The <size> argument is a number, optionally followed by a units
specifier (Kb, Mb, or Gb). If the units are not given then the number is
assumed to be in Kb.
llvm-svn: 371244
The file was modifiedllvm/tools/llvm-jitlink/llvm-jitlink.cpp
The file was modifiedllvm/tools/llvm-jitlink/llvm-jitlink.h
Commit c1105111b39384b959edee9c91ae543d57a5a795 by Lang Hames
[ORC] Make sure RPC channel-send is called in blocking calls and
responses.
ORC-RPC batches calls by default, and the channel's send method must be
called to transfer any buffered calls to the remote. The call to send
was missing on responses and blocking calls in the
SingleThreadedRPCEndpoint. This patch adds the necessary calls and
modifies the RPC unit test to check for them.
llvm-svn: 371245
The file was modifiedllvm/unittests/ExecutionEngine/Orc/QueueChannel.h
The file was modifiedllvm/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp
The file was modifiedllvm/include/llvm/ExecutionEngine/Orc/RPCUtils.h
Commit 88a98ea3f75c6578c7fff47b6e3f52b8eff13446 by e.menezes
[ConstantFolding] Add new test cases for transcendentals (NFC)
llvm-svn: 371246
The file was addedllvm/test/Analysis/ConstantFolding/math-1.ll
The file was addedllvm/test/Analysis/ConstantFolding/math-2.ll
Commit eaf34a983c71446a176edc781e6276bc3d922eb8 by sfertile
[PowerPC][XCOFF] Remove basic test. [NFC]
Test verified that we could compile an empty module and produce an XCOFF
object file. Newer tests superssed this coverage, its safe to remove.
llvm-svn: 371247
The file was removedllvm/test/CodeGen/PowerPC/aix-xcoff-basic.ll
Commit 5476bd943203096f52fd49b15638bbe1b48e012c by puyan
[llvm-ifs] Improving detection of PlatformKind from triple for TBD
generation.
It was pointed out that I had hard-coded PlatformKind. This is
rectifying that.
Differential Revision: https://reviews.llvm.org/D67255
llvm-svn: 371248
The file was modifiedllvm/tools/llvm-ifs/llvm-ifs.cpp
The file was addedllvm/test/tools/llvm-ifs/macos-tbd.ifs
The file was addedllvm/test/tools/llvm-ifs/ios-tbd.ifs
The file was addedllvm/test/tools/llvm-ifs/watchos-tbd.ifs
The file was addedllvm/test/tools/llvm-ifs/tvos-tbd.ifs
Commit 02eb6a44a87c0fad150078c1f6d0f99fe494b565 by Matthew.Arsenault
AMDGPU: Fix typo
llvm-svn: 371249
The file was modifiedllvm/lib/Target/AMDGPU/GCNSchedStrategy.cpp
Commit 4b5542f29d79ad4d0be244e5db82dbea129c2b3b by Jan Korous
[clang][Index][NFC] Put IndexingOptions to a separate header
llvm-svn: 371250
The file was addedclang/include/clang/Index/IndexingOptions.h
The file was modifiedclang-tools-extra/clangd/index/FileIndex.cpp
The file was modifiedclang/include/clang/Index/IndexingAction.h
The file was modifiedclang-tools-extra/clangd/XRefs.cpp
The file was modifiedclang-tools-extra/clangd/unittests/SymbolCollectorTests.cpp
The file was modifiedclang-tools-extra/clangd/index/IndexAction.cpp
Commit e0df2dce4cf6ed3850432d7e27f96bfe900e701d by rnk
Remove dead .seh_stackalloc parsing method in X86AsmParser
The shared COFF asm parser code handles this directive, since it is
shared with AArch64. Spotted by Alexandre Ganea in review.
llvm-svn: 371251
The file was modifiedllvm/lib/Target/X86/AsmParser/X86AsmParser.cpp
Commit e8b3553992670e4581bf584ea87b72ff87e0848f by richard-llvm
Update comment for <template-param-decl> mangling to match extended
mangling rule in r371004.
llvm-svn: 371252
The file was modifiedclang/lib/AST/ItaniumMangle.cpp
Commit 3e45c7028881a005dfb719b19248731dfe1d5369 by Matthew.Arsenault
GlobalISel: Support physical register inputs in patterns
llvm-svn: 371253
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-constant.mir
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPURegisterBankInfo.cpp
The file was modifiedllvm/utils/TableGen/GlobalISelEmitter.cpp
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.sendmsg.mir
The file was modifiedllvm/utils/TableGen/CodeGenRegisters.cpp
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/InstructionSelectorImpl.h
The file was addedllvm/test/CodeGen/AMDGPU/GlobalISel/inst-select-amdgcn.s.sendmsg.mir
The file was modifiedllvm/test/CodeGen/AMDGPU/GlobalISel/regbankselect-amdgcn.s.sendmsghalt.mir
The file was modifiedllvm/utils/TableGen/CodeGenRegisters.h
The file was addedllvm/test/TableGen/gisel-physreg-input.td
Commit cf10372119ca48ed0330d8225ca6165bf1dea801 by Matthew.Arsenault
GlobalISel: Add G_FMAD instruction
llvm-svn: 371254
The file was modifiedllvm/unittests/CodeGen/GlobalISel/MachineIRBuilderTest.cpp
The file was modifiedllvm/include/llvm/CodeGen/GlobalISel/MachineIRBuilder.h
The file was modifiedllvm/include/llvm/Support/TargetOpcodes.def
The file was modifiedllvm/include/llvm/Target/GlobalISel/SelectionDAGCompat.td
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/legalizer-info-validation.mir
The file was modifiedllvm/lib/CodeGen/GlobalISel/LegalizerHelper.cpp
The file was modifiedllvm/include/llvm/Target/GenericOpcodes.td
Commit 7c848acf0a86f521ee432fd22d9583cd73193545 by Lang Hames
[ORC] Add a missing #include atomic.
Hopefully this will fix the bot build failures from r371245.
llvm-svn: 371255
The file was modifiedllvm/unittests/ExecutionEngine/Orc/QueueChannel.h
Commit 2b1b4cab9605a33a6c90079b44bdddf048104e08 by Artem Dergachev
[analyzer] pr43179: Make CallDescription defensive against C variadic
functions.
Most functions that our checkers react upon are not C-style variadic
functions, and therefore they have as many actual arguments as they have
formal parameters.
However, it's not impossible to define a variadic function with the same
name. This will crash any checker that relies on CallDescription to
check the number of arguments but silently assumes that the number of
parameters is the same.
Change CallDescription to check both the number of arguments and the
number of parameters by default.
If we're intentionally trying to match variadic functions, allow
specifying arguments and parameters separately (possibly omitting any of
them). For now we only have one CallDescription which would make use of
those, namely __builtin_va_start itself.
Differential Revision: https://reviews.llvm.org/D67019
llvm-svn: 371256
The file was modifiedclang/include/clang/StaticAnalyzer/Core/PathSensitive/CallEvent.h
The file was addedclang/test/Analysis/cast-value-weird.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/ValistChecker.cpp
The file was modifiedclang/lib/StaticAnalyzer/Core/CallEvent.cpp
Commit 6cee434ed10ead6b7416ca5ee9592b2b207eeb0f by Artem Dergachev
[analyzer] Add minimal support for fix-it hints.
Allow attaching fixit hints to Static Analyzer BugReports.
Fixits are attached either to the bug report itself or to its notes
(path-sensitive event notes or path-insensitive extra notes).
Add support for fixits in text output (including the default text output
that goes without notes, as long as the fixit "belongs" to the warning).
Add support for fixits in the plist output mode.
Implement a fixit for the path-insensitive DeadStores checker. Only dead
initialization warning is currently covered.
Implement a fixit for the path-sensitive VirtualCall checker when the
virtual method is not pure virtual (in this case the "fix" is to
suppress the warning by qualifying the call).
Both fixits are under an off-by-default flag for now, because they
require more careful testing.
Differential Revision: https://reviews.llvm.org/D65182
llvm-svn: 371257
The file was modifiedclang/lib/StaticAnalyzer/Frontend/AnalysisConsumer.cpp
The file was modifiedclang/test/Analysis/plist-output.m
The file was modifiedclang/lib/StaticAnalyzer/Core/BugReporter.cpp
The file was modifiedclang/test/Analysis/dead-stores.c
The file was modifiedclang/lib/StaticAnalyzer/Checkers/DeadStoresChecker.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Core/BugReporter/PathDiagnostic.h
The file was addedclang/test/Analysis/virtualcall-fixits.cpp
The file was modifiedclang/lib/StaticAnalyzer/Checkers/VirtualCallChecker.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Checkers/Checkers.td
The file was modifiedclang/include/clang/StaticAnalyzer/Core/AnalyzerOptions.def
The file was modifiedclang/test/Analysis/edges-new.mm
The file was modifiedclang/lib/StaticAnalyzer/Core/PlistDiagnostics.cpp
The file was modifiedclang/include/clang/StaticAnalyzer/Core/BugReporter/BugReporter.h
The file was modifiedclang/test/Analysis/analyzer-config.c
The file was modifiedclang/test/Analysis/objc-arc.m
Commit b482db6dfeda8631afae3ca706ad3e3ccfd87d5d by apl
[Core] Remove use of ClangASTContext in DumpDataExtractor
Summary: DumpDataExtractor uses ClangASTContext in order to get the
proper llvm fltSemantics for the type it needs so that it can dump
floats in a more precise way. However, there's no reason that this
behavior needs to be specific ClangASTContext. Instead, I think it makes
sense to ask TypeSystems for the float semantics for a type of a given
size.
Differential Revision: https://reviews.llvm.org/D67239
llvm-svn: 371258
The file was modifiedlldb/include/lldb/Symbol/ClangASTContext.h
The file was modifiedlldb/source/Core/DumpDataExtractor.cpp
The file was modifiedlldb/include/lldb/Symbol/TypeSystem.h
The file was modifiedlldb/source/Symbol/ClangASTContext.cpp
Commit 92ada4ab0c7bbb2fbeb4ccec8b31e3bfcc3829b7 by Jonas Devlieghere
[test] Add a FIXME test for stop-command-source-on-error
Modifying the interpreter settings is tricky because they don't take
effect until we create a new command interpreter, which should be merely
an implementation detail. This leads to confusing and unexpected
scenarios.
This adds a test cases with FIXMEs for some of the odd scenarios I
encountered. I didn't XFAIL the test because I don't think there's a way
to get an unexpected PASS if any of the commands succeeds and splitting
up the file in multiple tests seems excessive.
llvm-svn: 371259
The file was addedlldb/lit/Settings/TestStopCommandSourceOnError.test
The file was addedlldb/lit/Settings/Inputs/DontStopCommandSource.in
The file was addedlldb/lit/Settings/Inputs/StopCommandSource.in
Commit a31112e3576a5ae0b0959dd20a66d3689d8d9014 by craig.topper
[X86] Replace -mcpu with -mattr on some tests.
llvm-svn: 371260
The file was modifiedllvm/test/Transforms/SLPVectorizer/X86/sqrt.ll
The file was modifiedllvm/test/Transforms/LoopVectorize/X86/pr42674.ll
Commit 03936cb0f942a9a78220ffc25d2849f29a1c4511 by craig.topper
[X86] Add a AVX512VBMI command line to min-legal-vector-width.ll. Always
enable fast-variable-shuffle
Trying to minimize the features we need to manipulate when this is
updated for D67259.
The VBMI is interesting because it enables some improved combining for
truncates.
I enabled fast-variable-shuffle because all the CPUs we're going to add
implicitly enable it. So they can share check lines.
llvm-svn: 371261
The file was modifiedllvm/test/CodeGen/X86/min-legal-vector-width.ll
Commit 7a7bba289521e6d4da199565cf72dc9eaed3d671 by ndesaulniers
[IR] CallBrInst: scan+update arg list when indirect dest list changes
Summary: There's an unspoken invariant of callbr that the list of
BlockAddress Constants in the "function args" list match the BasicBlocks
in the
"other labels" list. (This invariant is being added to the LangRef in
https://reviews.llvm.org/D67196).
When modifying the any of the indirect destinations of a callbr
instruction (possible jump targets), we need to update the function
arguments if the argument is a BlockAddress whose BasicBlock refers to
the indirect destination BasicBlock being replaced.  Otherwise, many
transforms that modify successors will end up violating that invariant.
A recent change to the arm64 Linux kernel exposed this bug, which
prevents the kernel from booting.
I considered maintaining a mapping from indirect destination BasicBlock
to argument operand BlockAddress, but this ends up being a one to
potentially many (though usually one) mapping.  Also, the list of
arguments to a function (or more typically inline assembly) ends up
being less than 10.  The implementation is significantly simpler to just
rescan the full list of arguments. Because of the one to potentially
many relationship, the full arg list must be scanned (we can't stop at
the first instance).
Thanks to the following folks that reported the issue and helped debug
it:
* Nathan Chancellor
* Will Deacon
* Andrew Murray
* Craig Topper
Link: https://bugs.llvm.org/show_bug.cgi?id=43222 Link:
https://github.com/ClangBuiltLinux/linux/issues/649 Link:
https://lists.infradead.org/pipermail/linux-arm-kernel/2019-September/678330.html
Reviewers: craig.topper, chandlerc
Reviewed By: craig.topper
Subscribers: void, javed.absar, kristof.beyls, hiraditya, llvm-commits,
nathanchance, srhines
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67252
llvm-svn: 371262
The file was modifiedllvm/include/llvm/IR/Instructions.h
The file was modifiedllvm/lib/IR/Instructions.cpp
The file was modifiedllvm/unittests/IR/InstructionsTest.cpp
Commit 88cddb7a1c1700b9c57e58e08a24f76bc4dd1d4b by Lang Hames
[ORC][RPC] Join server thread before checking condition in unit test.
Otherwise we have a race on the sent-messages count.
llvm-svn: 371263
The file was modifiedllvm/unittests/ExecutionEngine/Orc/RPCUtilsTest.cpp
Commit 7d677adf2df62aadb8401651ef81d7df2c954afc by e.menezes
[InstCombine] Refactor substitution of instruction in the parent BB
(NFC)
Add the new method `LibCallSimplifier::substituteInParent()` that calls
`LibCallSimplifier::replaceAllUsesWith()' and
`LibCallSimplifier::eraseFromParent()` back to back, simplifying the
resulting code.
llvm-svn: 371264
The file was modifiedllvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
The file was modifiedllvm/include/llvm/Transforms/Utils/SimplifyLibCalls.h
Commit a1cf4d9795f24745920d85ca779864cf538ff8ac by aemerson
[AArch64][GlobalISel] Enable the localizer for optimized builds.
Despite the fact that the localizer's original motivation was to fix
horrendous constant spilling at -O0, shortening live ranges still has
net benefits even with optimizations enabled.
On an -Os build of CTMark, doing this improves code size by 0.5%
geomean.
There are a few regressions, bullet increasing in size by 0.5%. One
example from bullet where code size increased slightly was due to
GlobalISel actually now generating the same code as SelectionDAG. So we
actually have an opportunity in future to implement better heuristics
for localization and therefore be
*better* than SDAG in some cases. In relation to other optimizations
though that one is relatively minor.
Differential Revision: https://reviews.llvm.org/D67303
llvm-svn: 371266
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/gisel-commandline-option.ll
The file was modifiedllvm/lib/Target/AArch64/AArch64TargetMachine.cpp
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/localizer-in-O0-pipeline.mir
The file was modifiedllvm/test/CodeGen/AArch64/GlobalISel/swifterror.ll
Commit c1779194097f0553c292750195673ae65fdc4d32 by matthew.voss
Update lld tests dynamic-list.s and symbol-override.s to use llvm-nm
The following tests failed on Windows bots due to nm not being
available:
  lld/test/ELF/dynamic-list.s
lld/test/ELF/symbol-override.s
llvm-svn: 371267
The file was modifiedlld/test/ELF/dynamic-list.s
The file was modifiedlld/test/ELF/symbol-override.s
Commit 28328c3771e4241366ecb7aba8963dc92b3065d7 by rnk
Use musttail for variadic method thunks when possible
This avoids cloning variadic virtual methods when the target supports
musttail and the return type is not covariant. I think we never
implemented this previously because it doesn't handle the covariant
case. But, in the MS ABI, there are some cases where vtable thunks must
be emitted even when the variadic method defintion is not available, so
it looks like we need to implement this. Do it for both ABIs, since it's
a nice size improvement and simplification for Itanium.
Emit an error when emitting thunks for variadic methods with a covariant
return type. This case is essentially not implementable unless the ABI
provides a way to perfectly forward variadic arguments without a tail
call.
Fixes PR43173.
Differential Revision: https://reviews.llvm.org/D67028
llvm-svn: 371269
The file was addedclang/test/CodeGenCXX/ms-thunks-variadic-return.cpp
The file was modifiedclang/test/CodeGenCXX/thunks.cpp
The file was modifiedclang/lib/CodeGen/CGVTables.cpp
The file was modifiedclang/test/CodeGenCXX/linetable-virtual-variadic.cpp
Commit 4bbe85c5d4e7535a55e3455de310868067d0182a by richard-llvm
Implement demangling support for C++20 lambda expression extensions.
This implements demangling support for the mangling extensions specified
in https://github.com/itanium-cxx-abi/cxx-abi/pull/85, much of which is
implemented in Clang r359967 and r371004.
Specifically, this provides demangling for:
* <template-param-decl> in <lambda-sig>
* <template-param> with non-zero level
* lambda-expression literals (not emitted by Clang yet)
* nullptr literals
* string literals
(The final two seem unrelated, but handling them was necessary in order
to disambiguate between lambda expressions and the other forms of
literal for which we have a type but no value.)
When demangling a <lambda-sig>, we form template parameters with no
corresponding argument, so we cannot substitute in the argument in the
demangling. Instead we invent synthetic names for the template
parameters (eg, '[]<typename $T>($T *x)').
llvm-svn: 371273
The file was modifiedlibcxxabi/src/cxa_demangle.cpp
The file was modifiedlibcxxabi/test/test_demangle.pass.cpp
The file was modifiedlibcxxabi/src/demangle/ItaniumDemangle.h
Commit 0e881b9f5d1fd3c615f79860eacedaecad03daea by richard-llvm
Synchronize LLVM's copy of libc++abi's demangler with the libc++abi
version after r371273.
Also fix a minor issue in r371273 that only surfaced after template
instantiation from LLVM's use of the demangler.
llvm-svn: 371274
The file was modifiedlibcxxabi/src/demangle/ItaniumDemangle.h
The file was modifiedllvm/lib/Demangle/ItaniumDemangle.cpp
The file was modifiedllvm/include/llvm/Demangle/ItaniumDemangle.h
Commit 090510608da404a0e1c80fa29eb5fc18f2d91755 by Akira
[Sema] Diagnose default-initialization, destruction, and copying of
non-trivial C union types
This recommits r365985, which was reverted because it broke a few
projects using unions containing non-trivial ObjC pointer fields in
system headers. We now have a patch to fix the problem (see
https://reviews.llvm.org/D65256).
Original commit message:
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
llvm-svn: 371275
The file was modifiedclang/lib/AST/Type.cpp
The file was removedclang/test/CodeGenObjC/Inputs/strong_in_union.h
The file was addedclang/test/PCH/non-trivial-c-union.m
The file was modifiedclang/lib/Sema/SemaDecl.cpp
The file was addedclang/test/SemaObjC/non-trivial-c-union.m
The file was modifiedclang/include/clang/Basic/DiagnosticSemaKinds.td
The file was modifiedclang/lib/Serialization/ASTWriterDecl.cpp
The file was modifiedclang/lib/Serialization/ASTReaderDecl.cpp
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/include/clang/AST/Type.h
The file was modifiedclang/test/SemaObjC/arc-decls.m
The file was modifiedclang/include/clang/AST/DeclBase.h
The file was modifiedclang/lib/Sema/Sema.cpp
The file was modifiedclang/include/clang/AST/Decl.h
The file was modifiedclang/include/clang/Sema/Sema.h
The file was modifiedclang/lib/AST/Decl.cpp
The file was modifiedclang/lib/Sema/SemaType.cpp
The file was modifiedclang/test/CodeGenObjC/strong-in-c-struct.m
Commit 3f2c9917a4310a2835ffcc5a7be6226d0d218682 by Akira
[Sema][ObjC] Mark C union fields that have non-trivial ObjC ownership
qualifications as unavailable if the union is declared in a system
header
r365985 stopped marking those fields as unavailable, which caused the
union's NonTrivialToPrimitive* bits to be set to true. This patch
restores the behavior prior to r365985, except that users can explicitly
specify the ownership qualification of the field to instruct the
compiler not to mark it as unavailable.
rdar://problem/53420753
Differential Revision: https://reviews.llvm.org/D65256
llvm-svn: 371276
The file was modifiedclang/lib/Sema/SemaExpr.cpp
The file was modifiedclang/lib/AST/ASTContext.cpp
The file was modifiedclang/lib/Sema/SemaType.cpp
The file was addedclang/test/SemaObjC/Inputs/non-trivial-c-union.h
The file was modifiedclang/test/SemaObjC/non-trivial-c-union.m
The file was modifiedclang/include/clang/AST/ASTContext.h
The file was modifiedclang/lib/Sema/SemaDecl.cpp
Commit a8d3771a318fa9ac2519c6b3f2979ba735b65941 by rnk
Fix thunks.cpp test, don't FileCheck for anon namespace id
The anon namespace id is a hash of the main input path to the compiler,
which varies in the test suite because the input path is absolute.
llvm-svn: 371277
The file was modifiedclang/test/CodeGenCXX/thunks.cpp
Commit 0aee3873214682b0db7e9a876a8baedbb22a1039 by Jan Korous
[clang][DependencyFileGenerator] Fix missing -MT option handling
Targets in DependencyFileGenerator don't necessarily come from -MT
option.
Differential Revision: https://reviews.llvm.org/D67308
llvm-svn: 371279
The file was modifiedclang/lib/Frontend/CompilerInvocation.cpp
The file was modifiedclang/lib/Frontend/DependencyFile.cpp
Commit 5b0a687d891e661432dc2a12637a9a956ad68f78 by Jason Molenda
Long timeouts for the MacOSX SystemRuntime plugins under ASAN; else
quick.
In April via r357829, Adrian unified timeouts across lldb and set the
default value high so that we wouldn't get timeouts on ASAN bots that
were running under load.
The library that the MacOSX SystemRuntime has functions that need to
take a lock, and if that lock is held already, those functions will
never complete; we're seeing the 15 second timeout being hit with
inferiors that are doing a lot of enqueuing and dequeuing of libdispatch
work items causing this deadlocking behavior.
This patch reverts to a very short timeout for these SystemRuntime
function calls, given the behavior of this library that they are 
calling into.  When lldb is built with AddressSanitizer enabled, they
will use the default 15 second timeout.
tl;dr: this reverts to the previous timeouts for these SystemRuntime inf
func calls.
<rdar://problem/54538149>
llvm-svn: 371280
The file was modifiedlldb/source/Plugins/SystemRuntime/MacOSX/AppleGetItemInfoHandler.cpp
The file was modifiedlldb/source/Plugins/SystemRuntime/MacOSX/AppleGetQueuesHandler.cpp
The file was modifiedlldb/source/Plugins/SystemRuntime/MacOSX/AppleGetThreadItemInfoHandler.cpp
The file was modifiedlldb/source/Plugins/SystemRuntime/MacOSX/AppleGetPendingItemsHandler.cpp
Commit 78b6909fd545cb4b62d791a7be1b2412defcb966 by maskray
[llvm-objcopy] Rename SHOffset (e_shoff) field to SHOff. NFC
Similar to D67254.
`struct Elf*_Shdr` has a field `sh_offset`. Rename SHOffset to SHOff to
avoid confusion.
llvm-svn: 371281
The file was modifiedllvm/tools/llvm-objcopy/ELF/Object.h
The file was modifiedllvm/tools/llvm-objcopy/ELF/Object.cpp
Commit 2dd5a205e654cf5da41a3e50e62babd243481442 by craig.topper
[X86] Autogenerate fp128-libcalls.ll
llvm-svn: 371282
The file was modifiedllvm/test/CodeGen/X86/fp128-libcalls.ll
Commit dd507867efdc04a9d117cfe10bd291aa4b44ebbb by craig.topper
[X86] Add tests for fp128 frem, sqrt, sin, and cos.
llvm-svn: 371283
The file was modifiedllvm/test/CodeGen/X86/fp128-libcalls.ll
Commit 9c27b59cec76abea4f3f9261f3ffa73450f239c6 by tejohnson
Change TargetLibraryInfo analysis passes to always require Function
Summary: This is the first change to enable the TLI to be built
per-function so that -fno-builtin* handling can be migrated to use
function attributes. See discussion on D61634 for background. This is an
enabler for fixing handling of these options for LTO, for example.
This change should not affect behavior, as the provided function is not
yet used to build a specifically per-function TLI, but rather enables
that migration.
Most of the changes were very mechanical, e.g. passing a Function to the
legacy analysis pass's getTLI interface, or in Module level cases,
adding a callback. This is similar to the way the per-function TTI
analysis works.
There was one place where we were looking for builtins but not in the
context of a specific function. See FindCXAAtExit in
lib/Transforms/IPO/GlobalOpt.cpp. I'm somewhat concerned my workaround
could provide the wrong behavior in some corner cases. Suggestions
welcome.
Reviewers: chandlerc, hfinkel
Subscribers: arsenm, dschuff, jvesely, nhaehnle, mehdi_amini,
javed.absar, sbc100, jgravelle-google, eraman, aheejin, steven_wu,
george.burgess.iv, dexonsmith, jfb, asbirlea, gchatelet, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D66428
llvm-svn: 371284
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/lib/Transforms/Scalar/ConstantProp.cpp
The file was modifiedllvm/unittests/Analysis/GlobalsModRefTest.cpp
The file was modifiedllvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
The file was modifiedllvm/lib/Transforms/Scalar/MergeICmps.cpp
The file was modifiedllvm/lib/Transforms/Scalar/PlaceSafepoints.cpp
The file was modifiedllvm/lib/Analysis/LazyCallGraph.cpp
The file was modifiedllvm/lib/Analysis/BranchProbabilityInfo.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
The file was modifiedllvm/lib/Transforms/Scalar/EarlyCSE.cpp
The file was modifiedllvm/lib/CodeGen/HardwareLoops.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
The file was modifiedllvm/lib/Analysis/Lint.cpp
The file was modifiedllvm/lib/Analysis/LoopAccessAnalysis.cpp
The file was modifiedllvm/lib/Transforms/Scalar/CallSiteSplitting.cpp
The file was modifiedllvm/lib/Analysis/TargetLibraryInfo.cpp
The file was modifiedllvm/lib/Analysis/MemoryBuiltins.cpp
The file was modifiedllvm/lib/Transforms/IPO/InferFunctionAttrs.cpp
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp
The file was modifiedllvm/lib/Analysis/InstructionSimplify.cpp
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
The file was modifiedllvm/lib/Transforms/Scalar/DCE.cpp
The file was modifiedllvm/lib/Transforms/Scalar/NewGVN.cpp
The file was modifiedllvm/lib/Transforms/Utils/MetaRenamer.cpp
The file was modifiedllvm/lib/Transforms/Scalar/GVN.cpp
The file was modifiedllvm/include/llvm/Analysis/CFLSteensAliasAnalysis.h
The file was modifiedllvm/lib/Analysis/CFLAndersAliasAnalysis.cpp
The file was modifiedllvm/lib/Analysis/CFLSteensAliasAnalysis.cpp
The file was modifiedllvm/lib/CodeGen/ExpandMemCmp.cpp
The file was modifiedllvm/test/Other/new-pm-thinlto-defaults.ll
The file was modifiedllvm/include/llvm/Analysis/MemoryBuiltins.h
The file was modifiedllvm/lib/Transforms/InstCombine/InstructionCombining.cpp
The file was modifiedllvm/lib/Analysis/MemoryDependenceAnalysis.cpp
The file was modifiedllvm/test/Other/new-pm-defaults.ll
The file was modifiedllvm/lib/Analysis/BasicAliasAnalysis.cpp
The file was modifiedllvm/lib/Transforms/Scalar/JumpThreading.cpp
The file was modifiedllvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h
The file was modifiedllvm/include/llvm/Analysis/LazyCallGraph.h
The file was modifiedllvm/lib/Analysis/LazyBranchProbabilityInfo.cpp
The file was modifiedllvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
The file was modifiedllvm/include/llvm/Analysis/GlobalsModRef.h
The file was modifiedllvm/unittests/Analysis/LazyCallGraphTest.cpp
The file was modifiedllvm/lib/Transforms/Scalar/IndVarSimplify.cpp
The file was modifiedllvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
The file was modifiedllvm/unittests/Analysis/CGSCCPassManagerTest.cpp
The file was modifiedllvm/lib/Analysis/AliasAnalysis.cpp
The file was modifiedllvm/lib/Transforms/Scalar/SCCP.cpp
The file was modifiedllvm/lib/Analysis/LazyValueInfo.cpp
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyMemIntrinsicResults.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp
The file was modifiedllvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyPeephole.cpp
The file was modifiedllvm/lib/CodeGen/SafeStack.cpp
The file was modifiedllvm/lib/Transforms/Scalar/NaryReassociate.cpp
The file was modifiedllvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
The file was modifiedllvm/lib/Transforms/Scalar/LICM.cpp
The file was modifiedllvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
The file was modifiedllvm/lib/Transforms/IPO/Inliner.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
The file was modifiedllvm/lib/Transforms/Scalar/InstSimplifyPass.cpp
The file was modifiedllvm/include/llvm/Transforms/Scalar/SCCP.h
The file was modifiedllvm/lib/Passes/PassRegistry.def
The file was modifiedllvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp
The file was modifiedllvm/lib/Analysis/GlobalsModRef.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
The file was modifiedllvm/lib/Transforms/Scalar/LoopRerollPass.cpp
The file was modifiedllvm/include/llvm/Analysis/TargetLibraryInfo.h
The file was modifiedllvm/lib/CodeGen/CodeGenPrepare.cpp
The file was modifiedllvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp
The file was modifiedllvm/lib/Transforms/Scalar/LoopInstSimplify.cpp
The file was modifiedllvm/test/Other/new-pass-manager.ll
The file was modifiedllvm/test/Other/new-pm-lto-defaults.ll
The file was modifiedllvm/include/llvm/Transforms/Instrumentation/InstrProfiling.h
The file was modifiedllvm/lib/Target/ARM/ARMParallelDSP.cpp
The file was modifiedllvm/lib/Transforms/IPO/GlobalOpt.cpp
The file was modifiedllvm/unittests/IR/PassBuilderCallbacksTest.cpp
The file was modifiedllvm/lib/Transforms/IPO/SCCP.cpp
The file was modifiedllvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/BoundsChecking.cpp
The file was modifiedllvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
Commit ea61fcc2e46adc99b39525b77c98b101708386f4 by tejohnson
Remove stale TLI Module level pass registration
Clang patch to adapt to LLVM changes in D66428 that make the TLI require
a Function. There is no longer a module-level TargetLibraryAnalysis, so
remove its registration
llvm-svn: 371285
The file was modifiedclang/lib/CodeGen/BackendUtil.cpp
Commit b38105bbd0f7dfef424a4f096aa6a6b7b467fe99 by Xing
[CodeGen] Fix typos to run tests. NFC.
llvm-svn: 371286
The file was modifiedllvm/test/CodeGen/PowerPC/store-combine.ll
Commit ed20dcb88b72fe6cec728c6bfd49f19d7f762840 by Xing
Revert [CodeGen] Fix typos to run tests. NFC.
This reverts r371286 (git commit
b38105bbd0f7dfef424a4f096aa6a6b7b467fe99)
r371286 caused build bots' failure. I'll check it.
llvm-svn: 371289
The file was modifiedllvm/test/CodeGen/PowerPC/store-combine.ll
Commit 7faffd544b16f851a632d6b8f93e3c8485ff34bb by dave
[git-llvm] Do not reinvent `@{upstream}`
Make `git-llvm` more robust when used with a nontrivial repository.
https://reviews.llvm.org/D67262
llvm-svn: 371290
The file was modifiedllvm/utils/git-svn/git-llvm
Commit f2b9dc4758e6265c55ad578a56e9a1b27c86e797 by uenoku.tokotoko
[Attributor] ValueSimplify Abstract Attribute
Summary: This patch introduces initial `AAValueSimplify` which
simplifies a value in a context.
example
- (for function returned) If all the return values are the same and
constant, then we can replace callsite returned with the constant.
- If an internal function takes the same value(constant) as an argument
in the callsite, then we can replace the argument with that constant.
Reviewers: jdoerfert, sstefan1
Reviewed By: jdoerfert
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D66967
llvm-svn: 371291
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
The file was modifiedllvm/test/Transforms/FunctionAttrs/noreturn_sync.ll
The file was addedllvm/test/Transforms/FunctionAttrs/value-simplify.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/align.ll
The file was modifiedllvm/test/Transforms/FunctionAttrs/nounwind.ll
The file was modifiedllvm/lib/Transforms/IPO/Attributor.cpp
Commit 89f7859641f4ae799d869d077cb82e574b6238d6 by maskray
[ELF][test] Improve LTO tests
Add file-level comments Delete insignificant addresses to make them more
tolerant to layout changes Simplify test output
llvm-svn: 371292
The file was modifiedlld/test/ELF/lto/linker-script-symbols-ipo.ll
The file was modifiedlld/test/ELF/lto/version-script2.ll
The file was removedlld/test/ELF/lto/symbol-ordering-lto.s
The file was modifiedlld/test/ELF/lto/obj-path.ll
The file was addedlld/test/ELF/lto/symbol-ordering-function.s
The file was modifiedlld/test/ELF/lto/comdat2.ll
The file was modifiedlld/test/ELF/lto/parallel-internalize.ll
The file was addedlld/test/ELF/lto/symbol-ordering-data.s
The file was modifiedlld/test/ELF/lto/version-script.ll
The file was modifiedlld/test/ELF/lto/weak.ll
The file was modifiedlld/test/ELF/lto/shlib-undefined.ll
The file was modifiedlld/test/ELF/lto/visibility.ll
The file was removedlld/test/ELF/lto/data-ordering-lto.s
The file was modifiedlld/test/ELF/lto/undefined-puts.ll
The file was modifiedlld/test/ELF/lto/dynamic-list.ll
Commit 112f145306dadfc1aed545b59b7afa5db905b31e by sylvestre
Replicate the change "[Alignment][NFC] Use Align with
TargetLowering::setMinFunctionAlignment" on AVR to avoid a breakage. See
r371200 / https://reviews.llvm.org/D67229
llvm-svn: 371293
The file was modifiedllvm/lib/Target/AVR/AVRISelLowering.cpp
Commit 45ba26599bcc762224fefa60374a5594974260eb by lebedev.ri
[SimplifyCFG] SpeculativelyExecuteBB(): It's SpeculatedInstructions, not
SpeculationCost
It counts the number of instructions we are ok speculating
(at most 1 there), not their cost, so rename accordingly.
llvm-svn: 371294
The file was modifiedllvm/lib/Transforms/Utils/SimplifyCFG.cpp
Commit 8d3e4d3a4d60ded0bdb26843536b3988ae15eecc by lebedev.ri
[SimplifyCFG][NFC] Regenerate merge-cond-stores* tests
llvm-svn: 371296
The file was modifiedllvm/test/Transforms/SimplifyCFG/merge-cond-stores-2.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/merge-cond-stores.ll
Commit 0ff6d7f305f2991c6dac22dabd21b562235c5520 by lebedev.ri
[SimplifyCFG][NFC] Show that we don't consider the cost when merging
cond stores
We count instruction count in each BB's separately, not their cost.
llvm-svn: 371297
The file was modifiedllvm/test/Transforms/SimplifyCFG/merge-cond-stores.ll
Commit 84c7904d62c643ffafa2874c126a92a38a58abdb by benny.kra
[Attributor] Make unimplemented method pure virtual.
Otherwise the compiler mistakes it for a vtable anchor.
llvm-svn: 371298
The file was modifiedllvm/include/llvm/Transforms/IPO/Attributor.h
Commit 0e79890d9b5aef4466d572458c0fbb6031b991f6 by maskray
[ELF][test] Improve tests
Add file-level comments Delete insignificant addresses to make them more
tolerant to layout changes Simplify test output
Delete weak-undef-val.s - covered by relocation-undefined-weak.s Delete
weak-undef-export.s - covered by additional test added to weak-undef.s
Delete version-undef-sym.s - covered by undefined-versioned-symbol.s =>
version-symbol-undef.s Delete symbol-ordering-file2.s - covered by
symbol-ordering-file.s Delete gotpcrelx.s - covered by
gotpc-relax-und-dso.s => x86-64-gotpc-relax-und-dso.s
llvm-svn: 371299
The file was addedlld/test/ELF/x86-64-gotpc-relax-nopic.s
The file was modifiedlld/test/ELF/x86-64-tls-opt-noplt.s
The file was removedlld/test/ELF/Inputs/progname-ver.s
The file was modifiedlld/test/ELF/writable-sec-plt-reloc.s
The file was modifiedlld/test/ELF/emit-relocs-mergeable2.s
The file was modifiedlld/test/ELF/progname.s
The file was removedlld/test/ELF/gotpc-relax-nopic.s
The file was modifiedlld/test/ELF/icf-symbol-type.s
The file was modifiedlld/test/ELF/relative-dynamic-reloc.s
The file was removedlld/test/ELF/weak-undef-val.s
The file was modifiedlld/test/ELF/icf7.s
The file was modifiedlld/test/ELF/version-script-extern.s
The file was modifiedlld/test/ELF/weak-undef.s
The file was removedlld/test/ELF/undefined-versioned-symbol.s
The file was addedlld/test/ELF/x86-64-gotpc-relax-und-dso.s
The file was modifiedlld/test/ELF/emit-relocs-icf2.s
The file was addedlld/test/ELF/version-symbol-undef.s
The file was modifiedlld/test/ELF/x86-64-relax-got-abs.s
The file was removedlld/test/ELF/version-undef-sym.s
The file was removedlld/test/ELF/Inputs/version-undef-sym.so
The file was modifiedlld/test/ELF/x86-64-retpoline-znow.s
The file was addedlld/test/ELF/x86-64-gotpc-relax.s
The file was modifiedlld/test/ELF/ehdr_start.s
The file was modifiedlld/test/ELF/noplt-pie.s
The file was removedlld/test/ELF/weak-undef-export.s
The file was removedlld/test/ELF/gotpcrelx.s
The file was removedlld/test/ELF/symbol-ordering-file2.s
The file was removedlld/test/ELF/gotpc-relax.s
The file was modifiedlld/test/ELF/x86-64-retpoline.s
The file was removedlld/test/ELF/got-plt-header.s
The file was modifiedlld/test/ELF/local-symbols-order.s
The file was modifiedlld/test/ELF/x86-64-tls-dynamic.s
The file was addedlld/test/ELF/end-dso-defined.s
The file was modifiedlld/test/ELF/x86-64-relax-offset.s
The file was removedlld/test/ELF/resolution-end.s
The file was modifiedlld/test/ELF/x86-64-tls-ld-preemptable.s
The file was modifiedlld/test/ELF/pre_init_fini_array_missing.s
The file was addedlld/test/ELF/x86-64-got-plt-header.s
The file was removedlld/test/ELF/gotpc-relax-und-dso.s
Commit 395f254bf0e53ee2e268a717d7f063fbff6a6cca by lebedev.ri
[SimplifyCFG][NFC] Make merge-cond-stores-cost.ll X86-specific, and
rewrite it
We clearly perform store-merging, even though div is really costly.
llvm-svn: 371300
The file was addedllvm/test/Transforms/SimplifyCFG/X86/merge-cond-stores-cost.ll
The file was modifiedllvm/test/Transforms/SimplifyCFG/merge-cond-stores.ll
Commit d7d8bb937ad0e27a95ae722826697fc449c77fde by llvm-dev
Fix MSVC "32-bit shift implicitly converted to 64 bits" warnings. NFCI.
llvm-svn: 371302
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
Commit e85acf946d3b5bd62c97ac9d49e95e4b8a4cbe83 by bjorn.a.pettersson
[DebugInfo] Pre-commit of test case for DW_OP_breg/DW_OP_fbreg folds
This currently triggers undefined behavior if executed with an ubsan
build. It is just a precommit of the test case to show that we got a
problem.
Fix is proposed in https://reviews.llvm.org/D67263 and plan is to commit
the fix directly after this patch.
llvm-svn: 371303
The file was addedllvm/test/DebugInfo/X86/dw_op_constu.mir
Commit 2b698a13a11e0b007c9e1d71bc69fcf4a194eab1 by bjorn.a.pettersson
[DwarfExpression] Disallow some rewrites to avoid undefined behavior
Summary: The value operand in DW_OP_plus_uconst/DW_OP_constu value can
be large (it uses uint64_t as representation internally in LLVM). This
means that in the uint64_t to int conversions, previously done by
DwarfExpression::addMachineRegExpression, could lose information. Also,
the negation done in "-Offset" was undefined behavior in case Offset was
exactly INT_MIN.
To avoid the above problems, we now avoid transformation like
[Reg, DW_OP_plus_uconst, Offset] --> [DW_OP_breg, Offset] and
[Reg, DW_OP_constu, Offset, DW_OP_plus]  --> [DW_OP_breg, Offset] when
Offset > INT_MAX.
And we avoid to transform
[Reg, DW_OP_constu, Offset, DW_OP_minus] --> [DW_OP_breg,-Offset] when
Offset > INT_MAX+1.
The patch also adjusts DwarfCompileUnit::constructVariableDIEImpl to
make sure that "DW_OP_constu, Offset, DW_OP_minus" is used instead of
"DW_OP_plus_uconst, Offset" when creating DIExpressions with negative
frame index offsets.
Notice that this might just be the tip of the iceberg. There are lots of
fishy handling related to these constants. I think both
DIExpression::appendOffset and DIExpression::extractIfOffset may trigger
undefined behavior for certain values.
Reviewers: sdesmalen, rnk, JDevlieghere
Reviewed By: JDevlieghere
Subscribers: jholewinski, aprantl, hiraditya, ychen, uabelho,
llvm-commits
Tags: #debug-info, #llvm
Differential Revision: https://reviews.llvm.org/D67263
llvm-svn: 371304
The file was modifiedllvm/test/DebugInfo/X86/dw_op_constu.mir
The file was modifiedllvm/test/DebugInfo/NVPTX/dbg-declare-alloca.ll
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfExpression.cpp
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfCompileUnit.cpp
Commit 5d02f259c098a2c965f30803de3a53476309ab1f by nikita.ppv
[X86] Add test for PR43230; NFC
llvm-svn: 371305
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-256-v16.ll
Commit fdc6977ff3c0cb6c729c38c86f96e1281cb3171c by nikita.ppv
[LVI] Look through extractvalue of insertvalue
This addresses the issue mentioned on D19867. When we simplify
with.overflow instructions in CVP, we leave behind extractvalue of
insertvalue sequences that LVI no longer understands. This means that we
can not simplify any instructions based on the with.overflow anymore
(until some over pass like InstCombine cleans them up).
This patch extends LVI extractvalue handling by calling
SimplifyExtractValueInst (which doesn't do anything more than constant
folding + looking through insertvalue) and using the block value of the
simplification.
A possible alternative would be to do something similar to
SimplifyIndVars, where we instead directly try to replace extractvalue
users of the with.overflow. This would need some additional structural
changes to CVP, as it's currently not legal to remove anything but the
current instruction -- we'd have to introduce a worklist with
instructions scheduled for deletion or similar.
Differential Revision: https://reviews.llvm.org/D67035
llvm-svn: 371306
The file was modifiedllvm/lib/Analysis/LazyValueInfo.cpp
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/overflows.ll
Commit 314893cc4ba05e65da4be26afb21b2fb50eab7b3 by nikita.ppv
[X86] Fix pshuflw formation from repeated shuffle mask (PR43230)
Fix for https://bugs.llvm.org/show_bug.cgi?id=43230.
When creating PSHUFLW from a repeated shuffle mask, we have to apply the
checks to the repeated mask, not the original one. For the test case
from PR43230 the inspected part of the original mask is all undef.
Differential Revision: https://reviews.llvm.org/D67314
llvm-svn: 371307
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/vector-shuffle-256-v16.ll
Commit 5e331e4ce85ad37dca45739846c2a801f06ab573 by bjorn.a.pettersson
[Intrinsic] Add the llvm.umul.fix.sat intrinsic
Summary: Add an intrinsic that takes 2 unsigned integers with the scale
of them provided as the third argument and performs fixed point
multiplication on them. The result is saturated and clamped between the
largest and smallest representable values of the first 2 operands.
This is a part of implementing fixed point arithmetic in clang where
some of the more complex operations will be implemented as intrinsics.
Patch by: leonardchan, bjope
Reviewers: RKSimon, craig.topper, bevinh, leonardchan, lebedev.ri,
spatel
Reviewed By: leonardchan
Subscribers: ychen, wuzish, nemanjai, MaskRay, jsji, jdoerfert, Ka-Ka,
hiraditya, rjmccall, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D57836
llvm-svn: 371308
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorTypes.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/DAGCombiner.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeDAG.cpp
The file was modifiedllvm/test/CodeGen/X86/mulfix_combine.ll
The file was modifiedllvm/test/CodeGen/X86/vector-mulfix-legalize.ll
The file was addedllvm/test/CodeGen/PowerPC/umulfixsat.ll
The file was modifiedllvm/include/llvm/CodeGen/ISDOpcodes.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGDumper.cpp
The file was modifiedllvm/lib/CodeGen/TargetLoweringBase.cpp
The file was modifiedllvm/include/llvm/IR/Intrinsics.td
The file was modifiedllvm/include/llvm/Target/TargetSelectionDAG.td
The file was modifiedllvm/docs/LangRef.rst
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/test/Transforms/Scalarizer/intrinsics.ll
The file was modifiedllvm/lib/Analysis/VectorUtils.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeIntegerTypes.cpp
The file was modifiedllvm/lib/IR/Verifier.cpp
The file was addedllvm/test/CodeGen/X86/umul_fix_sat.ll
The file was modifiedllvm/lib/CodeGen/SelectionDAG/LegalizeVectorOps.cpp
The file was modifiedllvm/test/Verifier/intrinsic-immarg.ll
Commit d065c811649f0d0df5429741a9a3dd643e88a9fe by bjorn.a.pettersson
[CodeGen] Handle SMULFIXSAT with scale zero in
TargetLowering::expandFixedPointMul
Summary: Normally TargetLowering::expandFixedPointMul would handle
SMULFIXSAT with scale zero by using an SMULO to compute the product and
determine if saturation is needed (if overflow happened). But if SMULO
isn't custom/legal it falls through and uses the same technique, using
MULHS/SMUL_LOHI, as used for non-zero scales.
Problem was that when checking for overflow (handling saturation) when
not using MULO we did not expect to find a zero scale. So we ended up in
an assertion when doing
APInt::getLowBitsSet(VTSize, Scale - 1)
This patch fixes the problem by adding a new special case for how
saturation is computed when scale is zero.
Reviewers: RKSimon, bevinh, leonardchan, spatel
Reviewed By: RKSimon
Subscribers: wuzish, nemanjai, hiraditya, MaskRay, jsji, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D67071
llvm-svn: 371309
The file was modifiedllvm/lib/CodeGen/SelectionDAG/TargetLowering.cpp
The file was addedllvm/test/CodeGen/PowerPC/smulfixsat.ll