SuccessChanges

Summary

  1. [LLD] [COFF] Fix use of uninitialized memory since SVN r375390 (details)
  2. [ARM] Add and adjust saturation tests for upcoming qadd changes. NFC (details)
  3. [ARM] Lower sadd_sat to qadd8 and qadd16 (details)
  4. [MemCpyOpt] Fixing Incorrect Code Motion while Handling Aggregate Type (details)
  5. [obj2yaml] - Stop triggering UB when dumping corrupted strings. (details)
  6. [obj2yaml] - Fix a comment. NFC. (details)
  7. Fix llvm signal tests build. (details)
  8. [Alignment][NFC] TargetCallingConv::setOrigAlign and (details)
  9. [llvm/Object] - Make ELFObjectFile::getRelocatedSection return (details)
  10. Simplify usage of setFPAttrs. (details)
  11. [Alignment][NFC] TargetCallingConv::setByValAlign (details)
  12. [ARM] Add qadd lowering from a sadd_sat (details)
  13. [docs][llvm-ar] Update llvm-ar command guide (details)
  14. [Alignment][NFC] Add a helper function to DataLayout (details)
  15. [ARM] Extra qdadd patterns (details)
  16. [lldb] drop .symtab removal in minidebuginfo tests (details)
  17. [Alignment][NFC] Instructions::getLoadStoreAlignment (details)
  18. [Types] Define a getWithNewBitWidth for Types and make use of it (details)
  19. Pre-commit test cases for D64713. (details)
  20. [Alignment][NFC] Finish transition for `Loads` (details)
  21. [NFC] Cleanup with variable name IsPPC64 & IsDarwin (details)
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 modifiedllvm/test/CodeGen/ARM/ssub_sat.ll
The file was modifiedllvm/test/CodeGen/ARM/sadd_sat.ll
The file was addedllvm/test/CodeGen/ARM/qdadd.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/ssub_sat.ll
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.h
The file was modifiedllvm/lib/Target/ARM/ARMInstrInfo.td
The file was modifiedllvm/lib/Target/ARM/ARMInstrThumb2.td
The file was modifiedllvm/test/CodeGen/ARM/ssub_sat_plus.ll
The file was modifiedllvm/test/CodeGen/ARM/sadd_sat_plus.ll
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/test/CodeGen/ARM/sadd_sat.ll
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 addedllvm/test/tools/obj2yaml/invalid-section-name.yaml
The file was modifiedllvm/include/llvm/Support/YAMLTraits.h
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/lib/Target/ARM/ARMCallLowering.cpp
The file was modifiedllvm/lib/CodeGen/GlobalISel/CallLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMFastISel.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FastISel.cpp
The file was modifiedllvm/lib/Target/Mips/MipsCallLowering.cpp
The file was modifiedllvm/include/llvm/CodeGen/TargetLowering.h
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.h
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/include/llvm/CodeGen/TargetCallingConv.h
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/ELFObjectFile.h
The file was modifiedllvm/include/llvm/Object/ObjectFile.h
The file was modifiedllvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyld.cpp
The file was modifiedllvm/lib/DebugInfo/DWARF/DWARFContext.cpp
The file was addedllvm/test/tools/llvm-cxxdump/broken-reloc-sec.test
The file was modifiedllvm/test/tools/llvm-readobj/stack-sizes.test
The file was modifiedllvm/test/tools/llvm-objdump/X86/elf-disassemble-relocs.test
The file was modifiedllvm/lib/Object/ObjectFile.cpp
The file was modifiedllvm/tools/llvm-cxxdump/llvm-cxxdump.cpp
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/test/tools/llvm-objdump/relocations-elf.test
The file was modifiedllvm/tools/llvm-objdump/llvm-objdump.cpp
The file was modifiedllvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldELF.cpp
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/include/llvm/CodeGen/TargetCallingConv.h
The file was modifiedllvm/lib/CodeGen/GlobalISel/CallLowering.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/FastISel.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.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/test/CodeGen/ARM/ssub_sat.ll
The file was modifiedllvm/test/CodeGen/ARM/sadd_sat.ll
The file was modifiedllvm/lib/Target/ARM/ARMISelLowering.cpp
The file was modifiedllvm/lib/Target/ARM/ARMInstrThumb2.td
The file was modifiedllvm/test/CodeGen/ARM/sadd_sat_plus.ll
The file was modifiedllvm/lib/Target/ARM/ARMSubtarget.h
The file was modifiedllvm/test/CodeGen/ARM/qdadd.ll
The file was modifiedllvm/lib/Target/ARM/ARMInstrInfo.td
The file was modifiedllvm/test/CodeGen/ARM/ssub_sat_plus.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/include/llvm/IR/DataLayout.h
The file was modifiedllvm/unittests/IR/DataLayoutTest.cpp
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/lib/Target/ARM/ARMInstrInfo.td
The file was modifiedllvm/test/CodeGen/ARM/qdadd.ll
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-find-symbols.yaml
The file was modifiedlldb/test/Shell/ObjectFile/ELF/minidebuginfo-corrupt-xz.yaml
The file was modifiedlldb/test/Shell/ObjectFile/ELF/minidebuginfo-no-lzma.yaml
Commit 5e1e83ee23feb55c6791c2ee5398cf1de159ccff by gchatelet
[Alignment][NFC] Instructions::getLoadStoreAlignment
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
Subscribers: hiraditya, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69256
llvm-svn: 375416
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorize.cpp
The file was modifiedllvm/include/llvm/IR/Instructions.h
The file was modifiedllvm/lib/Transforms/Vectorize/LoopVectorizationLegality.cpp
Commit 3edb41654650d5d0ad02e5f6af3c187cf0c59fd0 by david.green
[Types] Define a getWithNewBitWidth for Types and make use of it
This is designed to change the bitwidth of a type without altering the
number of vector lanes. Also useful in D68651. Otherwise an NFC.
Differential Revision: https://reviews.llvm.org/D69139
llvm-svn: 375417
The file was modifiedllvm/include/llvm/IR/Type.h
The file was modifiedllvm/include/llvm/CodeGen/BasicTTIImpl.h
The file was modifiedllvm/include/llvm/IR/DerivedTypes.h
Commit 609dfcbda9c6f4c5654baca8a24659e6079935f8 by jay.foad
Pre-commit test cases for D64713.
llvm-svn: 375418
The file was modifiedllvm/test/Transforms/InstCombine/mul.ll
The file was modifiedllvm/test/Transforms/InstCombine/fmul.ll
Commit 301b4128acbdbf829d4c92907f2a1784b61e83b0 by gchatelet
[Alignment][NFC] Finish transition for `Loads`
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, asbirlea, llvm-commits
Tags: #llvm
Differential Revision: https://reviews.llvm.org/D69253
llvm-svn: 375419
The file was modifiedllvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
The file was modifiedllvm/lib/Transforms/Scalar/SROA.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineLoadStoreAlloca.cpp
The file was modifiedllvm/include/llvm/Analysis/Loads.h
The file was modifiedllvm/lib/Transforms/Utils/SimplifyLibCalls.cpp
The file was modifiedllvm/lib/CodeGen/MachineOperand.cpp
The file was modifiedllvm/lib/Transforms/InstCombine/InstCombineCalls.cpp
The file was modifiedllvm/lib/Analysis/Loads.cpp
The file was modifiedllvm/lib/Analysis/MemDerefPrinter.cpp
The file was modifiedllvm/lib/Transforms/Scalar/LICM.cpp
The file was modifiedllvm/lib/Analysis/ValueTracking.cpp
Commit d499d1cedfe460f6e2aa8fcbadc8c784fa960d26 by xiangxdh
[NFC] Cleanup with variable name IsPPC64 & IsDarwin
Clean up PPCAsmPrinter with IsPPC64 and IsDarwin.
Differential Revision: https://reviews.llvm.org/D69259
llvm-svn: 375420
The file was modifiedllvm/lib/Target/PowerPC/PPCAsmPrinter.cpp