SuccessChanges

Summary

  1. [RuntimeDyld] Replace hand-rolled endian conversion with support::endian. NFCI. (details)
  2. [LTO] Replace hand-rolled endian conversion with support::endian. NFCI. (details)
  3. [X86][SSE] combineVectorSignBitsTruncation - remove minimum vector length limitations (details)
  4. [Alignment][NFC] Remove deprecated functions introduced in 10.0.0 (details)
  5. [Alignment][NFC] Add DebugStr and operator* (details)
  6. [Support] Make DataExtractor string functions error-aware (details)
  7. [llvm/Support] Make more DataExtractor methods error-aware (details)
  8. [llvm/Support] Don't crash on empty nullptr ranges when decoding LEBs (details)
  9. [DWARF5] Added support for emission of debug_macro section. (details)
  10. Add a triple to test/ExecutionEngine/MCJIT/cet-code-model-lager.ll (details)
Commit e64e516790b6555d520db6eea7e49b24afb275b7 by benny.kra
[RuntimeDyld] Replace hand-rolled endian conversion with support::endian. NFCI.
The file was modifiedllvm/lib/ExecutionEngine/RuntimeDyld/RuntimeDyldImpl.h
Commit 232eff55f654cbe42b18ce96722ddda15dd67957 by benny.kra
[LTO] Replace hand-rolled endian conversion with support::endian. NFCI.
The file was modifiedllvm/lib/LTO/LTO.cpp
Commit 9bc5b1a489c66dc16f63050648824d00053dc659 by llvm-dev
[X86][SSE] combineVectorSignBitsTruncation - remove minimum vector length limitations

truncateVectorWithPACK has its own vector length controls, so we can rely on those directly. This helps some existing truncation to subvector tests, which were being combined later during shuffle lowering at which point the sign/zero bit detection had become obscured preventing lowerShuffleWithPACK working as well as it could.
The file was modifiedllvm/test/CodeGen/X86/masked_store_trunc_usat.ll
The file was modifiedllvm/lib/Target/X86/X86ISelLowering.cpp
The file was modifiedllvm/test/CodeGen/X86/vector-trunc-packus.ll
The file was modifiedllvm/test/CodeGen/X86/vector-trunc-usat.ll
The file was modifiedllvm/test/CodeGen/X86/vector-trunc-ssat.ll
The file was modifiedllvm/test/CodeGen/X86/masked_store_trunc_ssat.ll
Commit 39cfba9e333ce41b67c605173de9bf1575328b8a by gchatelet
[Alignment][NFC] Remove deprecated functions introduced in 10.0.0

Summary:
24 March 2020: LLVM 10.0.0 is out.
I gathered all deprecated function introduced between 9 and 10 and cleaned them up so they will be removed from 11.

> git log -p -S LLVM_ATTRIBUTE_DEPRECATED llvmorg-9.0.0..llvmorg-10.0.0

Reviewers: courbet

Subscribers: hiraditya, jfb, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77409
The file was modifiedllvm/lib/IR/Globals.cpp
The file was modifiedllvm/include/llvm/IR/IRBuilder.h
The file was modifiedllvm/include/llvm/IR/GlobalObject.h
The file was modifiedllvm/lib/IR/IRBuilder.cpp
Commit ff858d77810a5565a1f668c8e900a5e8659817be by gchatelet
[Alignment][NFC] Add DebugStr and operator*

Summary:
This is a roll forward of D77394 minus AlignmentFromAssumptions (which needs to be addressed separately)
Differences from D77394:
- DebugStr() now prints the alignment value or `None` and no more `Align(x)` or `MaybeAlign(x)`
   - This is to keep Warning message consistent (CodeGen/SystemZ/alloca-04.ll)
- Removed a few unneeded headers from Alignment (since it's included everywhere it's better to keep the dependencies to a minimum)

Reviewers: courbet

Subscribers: sdardis, hiraditya, jrtc27, atanasyan, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77537
The file was modifiedllvm/lib/CodeGen/MachineFrameInfo.cpp
The file was modifiedllvm/lib/Target/Mips/MipsRegisterInfo.cpp
The file was modifiedllvm/include/llvm/Support/Alignment.h
The file was modifiedllvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
The file was modifiedllvm/lib/CodeGen/SelectionDAG/SelectionDAGBuilder.cpp
Commit a16fffa3f6add51fe1c6ee975ace56aa06a3bea7 by pavel
[Support] Make DataExtractor string functions error-aware

Summary:
This patch adds an optional Error argument to DataExtractor functions
for string extraction, and makes them behave like other DataExtractor
functions (set the error if extraction fails, don't do anything if the
error is already set).

I have merged the StringRef and C string versions of the functions to
reduce code duplication.

Reviewers: dblaikie, MaskRay

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77307
The file was modifiedllvm/lib/Support/DataExtractor.cpp
The file was modifiedllvm/include/llvm/Support/DataExtractor.h
The file was modifiedllvm/unittests/Support/DataExtractorTest.cpp
Commit 9154a6398eda31bfbfac3291250a2968629ebc78 by pavel
[llvm/Support] Make more DataExtractor methods error-aware

Summary:
This patch adds the optional Error argument, and the Cursor variants to
more DataExtractor methods. The functions now behave the same way as
other error-aware functions (they set the error when they fail, and
don't do anything if the error is already set).

I have merged the LEB128 implementations via a template (similarly to
how fixed-size functions are handled) to reduce code duplication.

Depends on D77304.

Reviewers: dblaikie, aprantl

Subscribers: hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77306
The file was modifiedllvm/lib/Support/DataExtractor.cpp
The file was modifiedllvm/unittests/Support/DataExtractorTest.cpp
The file was modifiedllvm/include/llvm/Support/DataExtractor.h
Commit 8f1233699bf64fca1a94dcffe955396f05fdb957 by pavel
[llvm/Support] Don't crash on empty nullptr ranges when decoding LEBs

Summary:
If the decoding functions are called with both start and end pointers
being nullptr, the function will crash due to a nullptr dereference.
This happens because the function does not recognise nullptr as a valid
end pointer.

Obviously, nobody is going to pass null pointers here deliberately, but
it can happen indirectly (as it did for me), when calling these
functions on an ArrayRef, as a default-initialized empty ArrayRef will
have both begin() and end() pointers equal to nullptr.

The fix is to simply remove the nullptr check. Passing nullptr for "end"
with a valid "begin" pointer will still work, as one cannot reach
nullptr by incrementing a valid pointer without triggerring UB.

Reviewers: dblaikie

Subscribers: llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D77304
The file was modifiedllvm/include/llvm/Support/LEB128.h
The file was modifiedllvm/unittests/Support/LEB128Test.cpp
Commit 5d7e9adce20c997e2a9eeca161be3d22d046a4f4 by SourabhSingh.Tomar
[DWARF5] Added support for emission of debug_macro section.

Summary:
This patch adds support for emission of following DWARFv5 macro forms
in .debug_macro section.

1. DW_MACRO_start_file
2. DW_MACRO_end_file
3. DW_MACRO_define_strp
4. DW_MACRO_undef_strp.

Reviewed By: dblaikie, ikudrin

Differential Revision: https://reviews.llvm.org/D72828
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.cpp
The file was addedllvm/test/DebugInfo/X86/debug-macro-v5.ll
The file was modifiedllvm/include/llvm/MC/MCObjectFileInfo.h
The file was modifiedllvm/lib/CodeGen/AsmPrinter/DwarfDebug.h
The file was modifiedllvm/lib/MC/MCObjectFileInfo.cpp
Commit 6a800f6f622a7ade275fa6cb1ef07803460d8bb3 by hans
Add a triple to test/ExecutionEngine/MCJIT/cet-code-model-lager.ll

It was failing in 32-bit Windows builds with:

  $ ":" "RUN: at line 1"
  $ "c:\src\llvm_package_944db8a4\build32_stage0\bin\lli.exe" "-mtriple=i686-pc-windows-msvc-elf" "-code-model=large" "C:\src\llvm_package_944db8a4\llvm-project\llvm\test\ExecutionEngine\MCJIT\cet-code-model-lager.ll"
  # command stderr:
  Assertion failed: Is64Bit && "Large code model is only legal in 64-bit mode.", file C:\src\llvm_package_944db8a4\llvm-project\llvm\lib\Target\X86\X86ISelLowering.cpp, line 4212

Let's see if this helps.
The file was modifiedllvm/test/ExecutionEngine/MCJIT/cet-code-model-lager.ll