SuccessChanges

Summary

  1. [AMDGPU]: PHI Elimination hooks added for custom COPY insertion. Fixed Defferential Revision: https://reviews.llvm.org/D67101 Reviewers: rampitec, vpykhtin
  2. [ARM] LE support in ConstantIslands The low-overhead branch extension provides a loop-end 'LE' instruction that performs no decrement nor compare, it just jumps backwards. This patch modifies the constant islands pass to try to insert LE instructions in place of a Thumb2 conditional branch, instead of shrinking it. This only happens if a cmp can be converted to a cbn/z and used to exit the loop. Differential Revision: https://reviews.llvm.org/D67404
  3. [LoopUnroll] Use LoopSize+1 as threshold, to allow unrolling loops matching LoopSize. We use `< UP.Threshold` later on, so we should use LoopSize + 1, to allow unrolling if the result won't exceed to loop size. Fixes PR43305. Reviewers: efriedma, dmgreen, paquette Reviewed By: dmgreen Differential Revision: https://reviews.llvm.org/D67594
  4. [llvm-readobj] - Refactor the code. It's a straightforward refactoring that allows to simplify and encapsulate the code. Differential revision: https://reviews.llvm.org/D67624
  5. [Clang] Pragma vectorize_width() implies vectorize(enable) Specifying the vectorization width was supposed to implicitly enable vectorization, except that it wasn't really doing this. It was only setting the vectorize.width metadata, but not vectorize.enable. This should fix PR27643. Differential Revision: https://reviews.llvm.org/D66290
  6. [llvm-objcopy] - Remove python invocations from 2 test cases. It is possible to use yaml2obj to create sections with overlapping sh_offset now. This patch does that. Differential revision: https://reviews.llvm.org/D67610
  7. [RISCV] Add option aliases: -mcmodel=medany and -mcmodel=medlow RISC-V GCC use -mcmodel=medany and -mcmodel=medlow, but LLVM use -mcmodel=small and -mcmodel=medium. Add those two option aliases for provide same user interface between GCC and LLVM. Reviewed By: lenary Differential Revision: https://reviews.llvm.org/D67066
  8. [bugpoint] Add support for -Oz and properly enable -Os. This patch adds -Oz as option and also properly enables support for -Os. Currently, the existing check for -Os is dead, because the enclosing if only checks of O1, O2 and O3. There is still a difference between the -Oz pipeline compared to opt, but I have not been able to track that down yet. Reviewers: bogner, sebpop, efriedma Reviewed By: efriedma Differential Revision: https://reviews.llvm.org/D67593
  9. [RISCV] Define __riscv_cmodel_medlow and __riscv_cmodel_medany correctly RISC-V LLVM was only implement small/medlow code model, so it defined __riscv_cmodel_medlow directly without check. Now, we have medium/medany code model in RISC-V back-end, it should define according the actually code model. Reviewed By: lewis-revill Differential Revision: https://reviews.llvm.org/D67065
Revision 372086 by alex-t:
[AMDGPU]: PHI Elimination hooks added for custom COPY insertion. Fixed

Defferential Revision: https://reviews.llvm.org/D67101

Reviewers: rampitec, vpykhtin
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/CodeGen/TargetInstrInfo.h (diff)llvm.src/include/llvm/CodeGen/TargetInstrInfo.h
The file was modified/llvm/trunk/lib/CodeGen/PHIElimination.cpp (diff)llvm.src/lib/CodeGen/PHIElimination.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIInstrInfo.cpp (diff)llvm.src/lib/Target/AMDGPU/SIInstrInfo.cpp
The file was modified/llvm/trunk/lib/Target/AMDGPU/SIInstrInfo.h (diff)llvm.src/lib/Target/AMDGPU/SIInstrInfo.h
The file was modified/llvm/trunk/lib/Target/AMDGPU/SILowerControlFlow.cpp (diff)llvm.src/lib/Target/AMDGPU/SILowerControlFlow.cpp
The file was modified/llvm/trunk/test/CodeGen/AMDGPU/phi-elimination-assertion.mir (diff)llvm.src/test/CodeGen/AMDGPU/phi-elimination-assertion.mir
The file was added/llvm/trunk/test/CodeGen/AMDGPU/phi-elimination-end-cf.mirllvm.src/test/CodeGen/AMDGPU/phi-elimination-end-cf.mir
Revision 372085 by sam_parker:
[ARM] LE support in ConstantIslands

The low-overhead branch extension provides a loop-end 'LE' instruction
that performs no decrement nor compare, it just jumps backwards. This
patch modifies the constant islands pass to try to insert LE
instructions in place of a Thumb2 conditional branch, instead of
shrinking it. This only happens if a cmp can be converted to a cbn/z
and used to exit the loop.

Differential Revision: https://reviews.llvm.org/D67404
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMConstantIslandPass.cpp (diff)llvm.src/lib/Target/ARM/ARMConstantIslandPass.cpp
The file was modified/llvm/trunk/test/CodeGen/ARM/O3-pipeline.ll (diff)llvm.src/test/CodeGen/ARM/O3-pipeline.ll
The file was added/llvm/trunk/test/CodeGen/Thumb2/LowOverheadLoops/no-dec-cbnz.mirllvm.src/test/CodeGen/Thumb2/LowOverheadLoops/no-dec-cbnz.mir
The file was added/llvm/trunk/test/CodeGen/Thumb2/LowOverheadLoops/no-dec-le-simple.llllvm.src/test/CodeGen/Thumb2/LowOverheadLoops/no-dec-le-simple.ll
The file was added/llvm/trunk/test/CodeGen/Thumb2/LowOverheadLoops/no-dec-reorder.mirllvm.src/test/CodeGen/Thumb2/LowOverheadLoops/no-dec-reorder.mir
The file was added/llvm/trunk/test/CodeGen/Thumb2/LowOverheadLoops/no-dec.mirllvm.src/test/CodeGen/Thumb2/LowOverheadLoops/no-dec.mir
Revision 372084 by fhahn:
[LoopUnroll] Use LoopSize+1 as threshold, to allow unrolling loops matching LoopSize.

We use `< UP.Threshold` later on, so we should use LoopSize + 1, to
allow unrolling if the result won't exceed to loop size.

Fixes PR43305.

Reviewers: efriedma, dmgreen, paquette

Reviewed By: dmgreen

Differential Revision: https://reviews.llvm.org/D67594
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Transforms/Scalar/LoopUnrollPass.cpp (diff)llvm.src/lib/Transforms/Scalar/LoopUnrollPass.cpp
The file was modified/llvm/trunk/test/Transforms/LoopUnroll/AArch64/unroll-optsize.ll (diff)llvm.src/test/Transforms/LoopUnroll/AArch64/unroll-optsize.ll
The file was added/llvm/trunk/test/Transforms/LoopUnroll/optsize-loop-size.llllvm.src/test/Transforms/LoopUnroll/optsize-loop-size.ll
Revision 372083 by grimar:
[llvm-readobj] - Refactor the code.

It's a straightforward refactoring that allows to simplify and encapsulate the code.

Differential revision: https://reviews.llvm.org/D67624
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/Object/ELFObjectFile.h (diff)llvm.src/include/llvm/Object/ELFObjectFile.h
The file was modified/llvm/trunk/tools/llvm-readobj/ELFDumper.cpp (diff)llvm.src/tools/llvm-readobj/ELFDumper.cpp
Revision 372082 by sjoerdmeijer:
[Clang] Pragma vectorize_width() implies vectorize(enable)

Specifying the vectorization width was supposed to implicitly enable
vectorization, except that it wasn't really doing this. It was only
setting the vectorize.width metadata, but not vectorize.enable.

This should fix PR27643.

Differential Revision: https://reviews.llvm.org/D66290
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/CodeGen/CGLoopInfo.cpp (diff)clang.src/lib/CodeGen/CGLoopInfo.cpp
The file was modified/cfe/trunk/test/CodeGenCXX/pragma-loop-predicate.cpp (diff)clang.src/test/CodeGenCXX/pragma-loop-predicate.cpp
The file was modified/cfe/trunk/test/CodeGenCXX/pragma-loop.cpp (diff)clang.src/test/CodeGenCXX/pragma-loop.cpp
Revision 372081 by grimar:
[llvm-objcopy] - Remove python invocations from 2 test cases.

It is possible to use yaml2obj to create sections with overlapping sh_offset now.
This patch does that.

Differential revision: https://reviews.llvm.org/D67610
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/test/tools/llvm-objcopy/ELF/overlapping-sections-in-segments.test (diff)llvm.src/test/tools/llvm-objcopy/ELF/overlapping-sections-in-segments.test
The file was modified/llvm/trunk/test/tools/llvm-objcopy/ELF/overlapping-sections.test (diff)llvm.src/test/tools/llvm-objcopy/ELF/overlapping-sections.test
Revision 372080 by kito:
[RISCV] Add option aliases: -mcmodel=medany and -mcmodel=medlow

RISC-V GCC use -mcmodel=medany and -mcmodel=medlow, but LLVM use
-mcmodel=small and -mcmodel=medium.

Add those two option aliases for provide same user interface between
GCC and LLVM.

Reviewed By: lenary

Differential Revision: https://reviews.llvm.org/D67066
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Driver/Options.td (diff)clang.src/include/clang/Driver/Options.td
The file was modified/cfe/trunk/test/Preprocessor/riscv-cmodel.c (diff)clang.src/test/Preprocessor/riscv-cmodel.c
Revision 372079 by fhahn:
[bugpoint] Add support for -Oz and properly enable -Os.

This patch adds -Oz as option and also properly enables support for -Os.
Currently, the existing check for -Os is dead, because the enclosing if
only checks of O1, O2 and O3.

There is still a difference between the -Oz pipeline compared to opt,
but I have not been able to track that down yet.

Reviewers: bogner, sebpop, efriedma

Reviewed By: efriedma

Differential Revision: https://reviews.llvm.org/D67593
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/tools/bugpoint/bugpoint.cpp (diff)llvm.src/tools/bugpoint/bugpoint.cpp
Revision 372078 by kito:
[RISCV] Define __riscv_cmodel_medlow and __riscv_cmodel_medany correctly

RISC-V LLVM was only implement small/medlow code model, so it defined
__riscv_cmodel_medlow directly without check.

Now, we have medium/medany code model in RISC-V back-end, it should
define according the actually code model.

Reviewed By: lewis-revill

Differential Revision: https://reviews.llvm.org/D67065
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/lib/Basic/Targets/RISCV.cpp (diff)clang.src/lib/Basic/Targets/RISCV.cpp
The file was added/cfe/trunk/test/Preprocessor/riscv-cmodel.cclang.src/test/Preprocessor/riscv-cmodel.c