FailedChanges

Summary

  1. [CVP] Deduce no-wrap on `mul` (details)
  2. [NFC][InstCombine] Fixup comments (details)
  3. Use Align for TFL::TransientStackAlignment (details)
  4. [LLD] [COFF] Fix use of uninitialized memory since SVN r375390 (details)
  5. [ARM] Add and adjust saturation tests for upcoming qadd changes. NFC (details)
  6. [ARM] Lower sadd_sat to qadd8 and qadd16 (details)
  7. [MemCpyOpt] Fixing Incorrect Code Motion while Handling Aggregate Type (details)
  8. [obj2yaml] - Stop triggering UB when dumping corrupted strings. (details)
  9. [obj2yaml] - Fix a comment. NFC. (details)
  10. Fix llvm signal tests build. (details)
  11. [Alignment][NFC] TargetCallingConv::setOrigAlign and (details)
  12. [llvm/Object] - Make ELFObjectFile::getRelocatedSection return (details)
  13. Simplify usage of setFPAttrs. (details)
  14. [Alignment][NFC] TargetCallingConv::setByValAlign (details)
  15. [ARM] Add qadd lowering from a sadd_sat (details)
  16. [docs][llvm-ar] Update llvm-ar command guide (details)
  17. [Alignment][NFC] Add a helper function to DataLayout (details)
  18. [ARM] Extra qdadd patterns (details)
  19. [lldb] drop .symtab removal in minidebuginfo tests (details)
Commit 292771627735a0d23ba3e82b04f9571def812917 by lebedev.ri
[CVP] Deduce no-wrap on `mul`
Summary:
`ConstantRange::makeGuaranteedNoWrapRegion()` knows how to deal with
`mul` since rL335646, there is exhaustive test coverage. This is already
used by CVP's `processOverflowIntrinsic()`, and by SCEV's
`StrengthenNoWrapFlags()`
That being said, currently, this doesn't help much in the end:
| statistic                              |     old |     new | delta |
percentage |
| correlated-value-propagation.NumMulNSW |       4 |     275 |   271 | 
6775.00% |
| correlated-value-propagation.NumMulNUW |       4 |    1323 |  1319 |
32975.00% |
| correlated-value-propagation.NumMulNW  |       8 |    1598 |  1590 |
19875.00% |
| correlated-value-propagation.NumNSW    |    5715 |    5986 |   271 | 
   4.74% |
| correlated-value-propagation.NumNUW    |    9193 |   10512 |  1319 | 
  14.35% |
| correlated-value-propagation.NumNW     |   14908 |   16498 |  1590 | 
  10.67% |
| instcount.NumAddInst                   |  275871 |  275869 |    -2 | 
   0.00% |
| instcount.NumBrInst                    |  708234 |  708232 |    -2 | 
   0.00% |
| instcount.NumMulInst                   |   43812 |   43810 |    -2 | 
   0.00% |
| instcount.NumPHIInst                   |  316786 |  316784 |    -2 | 
   0.00% |
| instcount.NumTruncInst                 |   62165 |   62167 |     2 | 
   0.00% |
| instcount.NumUDivInst                  |    2528 |    2526 |    -2 | 
  -0.08% |
| instcount.TotalBlocks                  |  842995 |  842993 |    -2 | 
   0.00% |
| instcount.TotalInsts                   | 7376486 | 7376478 |    -8 | 
   0.00% |
(^ test-suite plain, tests still pass)
Reviewers: nikic, reames, luqmana, sanjoy, timshen
Reviewed By: reames
Subscribers: hiraditya, javed.absar, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69203
llvm-svn: 375396
The file was modifiedllvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
The file was modifiedllvm/test/Transforms/CorrelatedValuePropagation/mul.ll
Commit 9948fac6c1fae87b31a35afa84fcdb118b671c43 by lebedev.ri
[NFC][InstCombine] Fixup comments
As noted in post-commit review of rL375378375378.
llvm-svn: 375397
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineAddSub.cpp
Commit 3cc4835c00225d52453014a05f0a2b07f1c1973f by gchatelet
Use Align for TFL::TransientStackAlignment
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: arsenm, dschuff, jyknight, sdardis, jvesely, nhaehnle,
sbc100, jgravelle-google, hiraditya, aheejin, fedor.sergeev, jrtc27,
atanasyan, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69216
llvm-svn: 375398
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUFrameLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMFrameLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/SIFrameLowering.h
The file was modifiedllvm/lib/Target/SystemZ/SystemZFrameLowering.cpp
The file was modifiedllvm/lib/Target/AMDGPU/R600FrameLowering.h
The file was modifiedllvm/lib/Target/Mips/MipsFrameLowering.h
The file was modifiedllvm/lib/Target/AMDGPU/AMDGPUFrameLowering.h
The file was modifiedllvm/lib/Target/WebAssembly/WebAssemblyFrameLowering.h
The file was modifiedllvm/include/llvm/CodeGen/TargetFrameLowering.h
The file was modifiedllvm/lib/Analysis/ScalarEvolution.cpp
The file was modifiedllvm/lib/Target/Hexagon/HexagonFrameLowering.h
The file was modifiedllvm/lib/Target/MSP430/MSP430FrameLowering.h
The file was modifiedllvm/lib/Target/AArch64/AArch64FrameLowering.h
The file was modifiedllvm/lib/Target/Sparc/SparcFrameLowering.cpp
Commit 150a9ad3ffcc142cfcc933379063bec6cfca0783 by martin
[LLD] [COFF] Fix use of uninitialized memory since SVN r375390
llvm-svn: 375400
The file was modifiedlld/COFF/InputFiles.h
Commit 5ba66fa53ba7f5c2c3e384c48a18fa7601dddd45 by david.green
[ARM] Add and adjust saturation tests for upcoming qadd changes. NFC
llvm-svn: 375401
The file was addedllvm/test/CodeGen/ARM/qdadd.ll
The file was modifiedllvm/test/CodeGen/ARM/sadd_sat.ll
The file was modifiedllvm/test/CodeGen/ARM/ssub_sat.ll
Commit fba831e791ba8978f21d2328499c8d3063401de3 by david.green
[ARM] Lower sadd_sat to qadd8 and qadd16
Lower the target independent signed saturating intrinsics to qadd8 and
qadd16. This custom lowers them from a sadd_sat, catching the node early
before it is promoted. It also adds a QADD8b and QADD16b node to mean
the bottom "lane" of a qadd8/qadd16, so that we can call demand bits on
it to show that it does not use the upper bits.
Also handles QSUB8 and QSUB16.
Differential Revision: https://reviews.llvm.org/D68974
llvm-svn: 375402
The file was modifiedllvm/test/CodeGen/ARM/sadd_sat.ll
The file was modifiedllvm/lib/Target/ARM/ARMInstrInfo.td
The file was modifiedllvm/test/CodeGen/ARM/ssub_sat.ll
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/test/CodeGen/ARM/sadd_sat_plus.ll
The file was modifiedllvm/test/CodeGen/ARM/ssub_sat_plus.ll
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.h
The file was modifiedllvm/lib/Target/ARM/ARMInstrThumb2.td
Commit d6e6aa8a42a96c09a78f0e02ecf50f12deda8024 by selliott
[MemCpyOpt] Fixing Incorrect Code Motion while Handling Aggregate Type
Values
Summary: When MemCpyOpt is handling aggregate type values, if an
instruction (let's call it P) between the targeting load (L) and store
(S) clobbers the source pointer of L, it will try to hoist S before P.
This process will also hoist S's data dependency instructions.
However, the current implementation has a bug that if one of S's
dependency instructions is //also// a user of P, MemCpyOpt will not
prevent it from being hoisted above P and cause a use-before-define
error. For example, in the newly added test file (i.e.
`aggregate-type-crash.ll`), it will try to hoist both `store %my_struct
%1, %my_struct* %3` and its dependent, `%3 = bitcast i8* %2 to
%my_struct*`, above `%2 = call i8* @my_malloc(%my_struct* %0)`. Creating
the following BB:
``` entry:
%1 = bitcast i8* %4 to %my_struct*
%2 = bitcast %my_struct* %1 to i8*
%3 = bitcast %my_struct* %0 to i8*
call void @llvm.memcpy.p0i8.p0i8.i64(i8* align 4 %2, i8* align 4 %3,
i64 8, i1 false)
%4 = call i8* @my_malloc(%my_struct* %0)
ret void
``` Where there is a use-before-define error between `%1` and `%4`.
Update: The compiler for the Pony Programming Language [also encounter
the same bug](https://github.com/ponylang/ponyc/issues/3140)
Patch by Min-Yih Hsu (myhsu)
Reviewers: eugenis, pcc, dblaikie, dneilson, t.p.northover, lattner
Reviewed By: eugenis
Subscribers: lenary, hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D66060
llvm-svn: 375403
The file was addedllvm/test/Transforms/MemCpyOpt/aggregate-type-crash.ll
The file was modifiedllvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
Commit 4ec0b084389619442638d7d3563793f21d787501 by grimar
[obj2yaml] - Stop triggering UB when dumping corrupted strings.
We have a following code to find quote type:
if (isspace(S.front()) || isspace(S.back()))
...
Problem is that:
"int isspace( int ch ): The behavior is undefined if the value of ch is
not representable as unsigned char and is not equal to EOF."
(https://en.cppreference.com/w/cpp/string/byte/isspace)
This patch shows how this UB can be triggered and fixes an issue.
Differential revision: https://reviews.llvm.org/D69160
llvm-svn: 375404
The file was modifiedllvm/include/llvm/Support/YAMLTraits.h
The file was addedllvm/test/tools/obj2yaml/invalid-section-name.yaml
Commit 6fc289191600cfb76a3d3b469c592caee19fca4f by grimar
[obj2yaml] - Fix a comment. NFC.
I forgot to address this nit before committing..
llvm-svn: 375405
The file was modifiedllvm/test/tools/obj2yaml/invalid-section-name.yaml
Commit a48633b5bbbbe9e20a7199eaed651ff6024d7967 by David CARLIER
Fix llvm signal tests build.
llvm-svn: 375406
The file was modifiedllvm/unittests/Support/SignalsTest.cpp
Commit bac5f6bd21de81a9041a94c12b49eb108dbc77c4 by gchatelet
[Alignment][NFC] TargetCallingConv::setOrigAlign and
TargetLowering::getABIAlignmentForCallingConv
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: sdardis, hiraditya, jrtc27, atanasyan, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69243
llvm-svn: 375407
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/lib/Target/ARM/ARMFastISel.cpp
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.h
The file was modifiedllvm/lib/Target/Mips/MipsCallLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMCallLowering.cpp
The file was modifiedllvm/lib/Target/Mips/MipsISelLowering.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/CallLowering.cpp
The file was modifiedllvm/include/llvm/CodeGen/TargetCallingConv.h
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FastISel.cpp
Commit 2bf01dcbaa6723c9c41f8d6005a1f69818ddbd23 by grimar
[llvm/Object] - Make ELFObjectFile::getRelocatedSection return
Expected<section_iterator>
It returns just a section_iterator currently and have a
report_fatal_error call inside. This change adds a way to return errors
and handle them on caller sides.
The patch also changes/improves current users and adds test cases.
Differential revision: https://reviews.llvm.org/D69167
llvm-svn: 375408
The file was modifiedllvm/include/llvm/Object/ObjectFile.h
The file was modifiedllvm/tools/llvm-objdump/llvm-objdump.cpp
The file was modifiedllvm/test/tools/llvm-readobj/stack-sizes.test
The file was modifiedllvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
The file was addedllvm/test/tools/llvm-cxxdump/broken-reloc-sec.test
The file was modifiedllvm/test/tools/llvm-objdump/X86/elf-disassemble-relocs.test
The file was modifiedllvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
The file was modifiedllvm/include/llvm/Object/ELFObjectFile.h
The file was addedllvm/test/tools/llvm-dwarfdump/elf-broken-reloc-target.yaml
The file was modifiedllvm/tools/llvm-readobj/ELFDumper.cpp
The file was modifiedllvm/lib/Object/ObjectFile.cpp
The file was modifiedllvm/tools/llvm-cxxdump/llvm-cxxdump.cpp
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFContext.cpp
The file was modifiedllvm/test/tools/llvm-objdump/relocations-elf.test
Commit 9010f6ad2fcaff3ae72375d51021bd95218d9091 by jay.foad
Simplify usage of setFPAttrs.
In some cases using the return value of setFPAttrs simplifies the code.
In other cases it complicates the code with ugly casts, so stop doing
it. NFC.
llvm-svn: 375409
The file was modifiedllvm/include/llvm/IR/IRBuilder.h
Commit 5df90cd71c3960eb143c0d3aec03af6a7b024260 by gchatelet
[Alignment][NFC] TargetCallingConv::setByValAlign
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: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69248
llvm-svn: 375410
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
The file was modifiedllvm/include/llvm/CodeGen/TargetCallingConv.h
The file was modifiedllvm/lib/CodeGen/GlobalISel/CallLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FastISel.cpp
Commit d7b77f2203dd09e8d6ab30128cc8b8ae7313c0ee by david.green
[ARM] Add qadd lowering from a sadd_sat
This lowers a sadd_sat to a qadd by treating it as legal. Also adds qsub
at the same time.
The qadd instruction sets the q flag, but we already have many cases
where we do not model this in llvm.
Differential Revision: https://reviews.llvm.org/D68976
llvm-svn: 375411
The file was modifiedllvm/lib/Target/ARM/ARMSubtarget.h
The file was modifiedllvm/test/CodeGen/ARM/qdadd.ll
The file was modifiedllvm/test/CodeGen/ARM/ssub_sat_plus.ll
The file was modifiedllvm/lib/Target/ARM/ARMInstrInfo.td
The file was modifiedllvm/lib/Target/ARM/ARMInstrThumb2.td
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/test/CodeGen/ARM/sadd_sat.ll
The file was modifiedllvm/test/CodeGen/ARM/sadd_sat_plus.ll
The file was modifiedllvm/test/CodeGen/ARM/ssub_sat.ll
Commit fe263c4f0f8b123ed335dc287524bc558eec0e16 by gbreynoo
[docs][llvm-ar] Update llvm-ar command guide
The llvm-ar command guide had not been updated in some time, it was
missing current functionality and contained information that was out of
date. This change:
- Updates the use of reStructuredText directives, as seen in other tools
command guides.
- Updates the command synopsis.
- Updates the descriptions of the tool behaviour.
- Updates the options section.
- Adds details of MRI script functionality.
- Removes the sections "Standards" and "File Format"
Differential Revision: https://reviews.llvm.org/D68998
llvm-svn: 375412
The file was modifiedllvm/docs/CommandGuide/llvm-ar.rst
Commit c7a76d6bf011754a0d3e9449c77b3cfa4bb01f6e by gchatelet
[Alignment][NFC] Add a helper function to DataLayout
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: llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69258
llvm-svn: 375413
The file was modifiedllvm/unittests/IR/DataLayoutTest.cpp
The file was modifiedllvm/include/llvm/IR/DataLayout.h
Commit 0765a4c2889031cf6a221f6f62f6ddb1ab535656 by david.green
[ARM] Extra qdadd patterns
This adds some new qdadd patterns to go along with the other recently
added qadd's.
Differential Revision: https://reviews.llvm.org/D68999
llvm-svn: 375414
The file was modifiedllvm/test/CodeGen/ARM/qdadd.ll
The file was modifiedllvm/lib/Target/ARM/ARMInstrInfo.td
The file was modifiedllvm/lib/Target/ARM/ARMInstrThumb2.td
Commit 9129a281cd5b8b1fb804be1de396de4a42676570 by kkleine
[lldb] drop .symtab removal in minidebuginfo tests
Summary: After D69041, we no longer have to manually remove the .symtab
section once yaml2obj was run.
Reviewers: espindola, alexshap
Subscribers: emaste, arichardson, MaskRay, lldb-commits
Tags: #lldb
Differential Revision: https://reviews.llvm.org/D69254
llvm-svn: 375415
The file was modifiedlldb/test/Shell/ObjectFile/ELF/minidebuginfo-corrupt-xz.yaml
The file was modifiedlldb/test/Shell/ObjectFile/ELF/minidebuginfo-find-symbols.yaml
The file was modifiedlldb/test/Shell/ObjectFile/ELF/minidebuginfo-no-lzma.yaml