SuccessChanges

Summary

  1. [X86][LWP] Add clang support for LWP instructions. This patch adds support for the the LightWeight Profiling (LWP) instructions which are available on all AMD Bulldozer class CPUs (bdver1 to bdver4). Differential Revision: https://reviews.llvm.org/D32770
  2. [ARM][NEON] Add support for ISD::ABS lowering Update NEON int_arm_neon_vabs intrinsic to use the ISD::ABS opcode directly Added constant folding tests. Differential Revision: https://reviews.llvm.org/D32938
  3. [ARM] Clear the constant pool cache on explicit .ltorg directives Multiple ldr pseudoinstructions with the same constant value will reuse the same constant pool entry. However, if the constant pool is explicitly flushed with a .ltorg directive, we should not try to reference constants in the previous pool any longer, since they may be out of range. This fixes assembling hand-written assembler source which repeatedly loads the same constant value, across a binary size larger than the pc-relative fixup range for ldr instructions (4096 bytes). Such assembler source already uses explicit .ltorg instructions to emit constant pools with regular intervals. However if we try to reuse constants emitted in earlier pools, they end up out of range. This makes the output of the testcase match what binutils gas does (prior to this patch, it would fail to assemble). Differential Revision: https://reviews.llvm.org/D32847
  4. [AARCH64][NEON] Add support for ISD::ABS lowering Update int_aarch64_neon_abs intrinsic to use the ISD::ABS opcode directly Differential Revision: https://reviews.llvm.org/D32940
  5. [ELF] - Set DF_STATIC_TLS flag for i386 target. This is PR32437. DF_STATIC_TLS If set in a shared object or executable, this flag instructs the dynamic linker to reject attempts to load this file dynamically. It indicates that the shared object or executable contains code using a static thread-local storage scheme. Implementations need not support any form of thread-local storage. Patch checks if IE/LE relocations were used to check if code uses static model. If so it sets the DF_STATIC_TLS flag. Differential revision: https://reviews.llvm.org/D32354
  6. [ELF] - Linkerscript: support combination of linkerscript and --compress-debug-sections. Previously it was impossible to use linkerscript with --compress-debug-sections because of assert failture: Assertion failed: isFinalized(), file C:\llvm\lib\MC\StringTableBuilder.cpp, line 64 Patch fixes the issue
Revision 302418 by rksimon:
[X86][LWP] Add clang support for LWP instructions.

This patch adds support for the the LightWeight Profiling (LWP) instructions which are available on all AMD Bulldozer class CPUs (bdver1 to bdver4).

Differential Revision: https://reviews.llvm.org/D32770
Change TypePath in RepositoryPath in Workspace
The file was modified/cfe/trunk/include/clang/Basic/BuiltinsX86.def (diff)llvm-revision.src/cfe/trunk/include/clang/Basic/BuiltinsX86.def
The file was modified/cfe/trunk/include/clang/Basic/BuiltinsX86_64.def (diff)llvm-revision.src/cfe/trunk/include/clang/Basic/BuiltinsX86_64.def
The file was modified/cfe/trunk/include/clang/Driver/Options.td (diff)llvm-revision.src/cfe/trunk/include/clang/Driver/Options.td
The file was modified/cfe/trunk/lib/Basic/Targets.cpp (diff)llvm-revision.src/cfe/trunk/lib/Basic/Targets.cpp
The file was modified/cfe/trunk/lib/Headers/CMakeLists.txt (diff)llvm-revision.src/cfe/trunk/lib/Headers/CMakeLists.txt
The file was added/cfe/trunk/lib/Headers/lwpintrin.hllvm-revision.src/cfe/trunk/lib/Headers/lwpintrin.h
The file was modified/cfe/trunk/lib/Headers/x86intrin.h (diff)llvm-revision.src/cfe/trunk/lib/Headers/x86intrin.h
The file was added/cfe/trunk/test/CodeGen/lwp-builtins.cllvm-revision.src/cfe/trunk/test/CodeGen/lwp-builtins.c
Revision 302417 by rksimon:
[ARM][NEON] Add support for ISD::ABS lowering

Update NEON int_arm_neon_vabs intrinsic to use the ISD::ABS opcode directly

Added constant folding tests.

Differential Revision: https://reviews.llvm.org/D32938
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/ARM/ARMISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/ARM/ARMInstrNEON.td (diff)llvm-revision.src/llvm/trunk/lib/Target/ARM/ARMInstrNEON.td
The file was modified/llvm/trunk/test/CodeGen/ARM/vabs.ll (diff)llvm-revision.src/llvm/trunk/test/CodeGen/ARM/vabs.ll
Revision 302416 by mstorsjo:
[ARM] Clear the constant pool cache on explicit .ltorg directives

Multiple ldr pseudoinstructions with the same constant value will
reuse the same constant pool entry. However, if the constant pool
is explicitly flushed with a .ltorg directive, we should not try
to reference constants in the previous pool any longer, since they
may be out of range.

This fixes assembling hand-written assembler source which repeatedly
loads the same constant value, across a binary size larger than the
pc-relative fixup range for ldr instructions (4096 bytes). Such
assembler source already uses explicit .ltorg instructions to emit
constant pools with regular intervals. However if we try to reuse
constants emitted in earlier pools, they end up out of range.

This makes the output of the testcase match what binutils gas does
(prior to this patch, it would fail to assemble).

Differential Revision: https://reviews.llvm.org/D32847
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/include/llvm/MC/ConstantPools.h (diff)llvm-revision.src/llvm/trunk/include/llvm/MC/ConstantPools.h
The file was modified/llvm/trunk/lib/MC/ConstantPools.cpp (diff)llvm-revision.src/llvm/trunk/lib/MC/ConstantPools.cpp
The file was modified/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMTargetStreamer.cpp
The file was added/llvm/trunk/test/MC/ARM/ltorg-range.sllvm-revision.src/llvm/trunk/test/MC/ARM/ltorg-range.s
Revision 302415 by rksimon:
[AARCH64][NEON] Add support for ISD::ABS lowering

Update int_aarch64_neon_abs intrinsic to use the ISD::ABS opcode directly

Differential Revision: https://reviews.llvm.org/D32940
Change TypePath in RepositoryPath in Workspace
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cpp (diff)llvm-revision.src/llvm/trunk/lib/Target/AArch64/AArch64ISelLowering.cpp
The file was modified/llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td (diff)llvm-revision.src/llvm/trunk/lib/Target/AArch64/AArch64InstrInfo.td
Revision 302414 by grimar:
[ELF] - Set DF_STATIC_TLS flag for i386 target.

This is PR32437.

DF_STATIC_TLS
If set in a shared object or executable, this flag instructs the
dynamic linker to reject attempts to load this file dynamically.
It indicates that the shared object or executable contains code
using a static thread-local storage scheme. Implementations need
not support any form of thread-local storage.

Patch checks if IE/LE relocations were used to check if code uses
static model. If so it sets the DF_STATIC_TLS flag.

Differential revision: https://reviews.llvm.org/D32354
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/ELF/Config.h (diff)llvm-revision.src/lld/trunk/ELF/Config.h
The file was modified/lld/trunk/ELF/SyntheticSections.cpp (diff)llvm-revision.src/lld/trunk/ELF/SyntheticSections.cpp
The file was modified/lld/trunk/ELF/Target.cpp (diff)llvm-revision.src/lld/trunk/ELF/Target.cpp
The file was added/lld/trunk/test/ELF/Inputs/i386-static-tls-model1.sllvm-revision.src/lld/trunk/test/ELF/Inputs/i386-static-tls-model1.s
The file was added/lld/trunk/test/ELF/Inputs/i386-static-tls-model2.sllvm-revision.src/lld/trunk/test/ELF/Inputs/i386-static-tls-model2.s
The file was added/lld/trunk/test/ELF/Inputs/i386-static-tls-model3.sllvm-revision.src/lld/trunk/test/ELF/Inputs/i386-static-tls-model3.s
The file was added/lld/trunk/test/ELF/Inputs/i386-static-tls-model4.sllvm-revision.src/lld/trunk/test/ELF/Inputs/i386-static-tls-model4.s
The file was added/lld/trunk/test/ELF/i386-static-tls-model.sllvm-revision.src/lld/trunk/test/ELF/i386-static-tls-model.s
The file was modified/lld/trunk/test/ELF/i386-tls-ie-shared.s (diff)llvm-revision.src/lld/trunk/test/ELF/i386-tls-ie-shared.s
The file was modified/lld/trunk/test/ELF/tls-dynamic-i686.s (diff)llvm-revision.src/lld/trunk/test/ELF/tls-dynamic-i686.s
The file was modified/lld/trunk/test/ELF/tls-opt-iele-i686-nopic.s (diff)llvm-revision.src/lld/trunk/test/ELF/tls-opt-iele-i686-nopic.s
Revision 302413 by grimar:
[ELF] - Linkerscript: support combination of linkerscript and --compress-debug-sections.

Previously it was impossible to use linkerscript with --compress-debug-sections
because of assert failture:
Assertion failed: isFinalized(), file C:\llvm\lib\MC\StringTableBuilder.cpp, line 64

Patch fixes the issue
Change TypePath in RepositoryPath in Workspace
The file was modified/lld/trunk/ELF/LinkerScript.cpp (diff)llvm-revision.src/lld/trunk/ELF/LinkerScript.cpp
The file was modified/lld/trunk/ELF/OutputSections.cpp (diff)llvm-revision.src/lld/trunk/ELF/OutputSections.cpp
The file was added/lld/trunk/test/ELF/linkerscript/Inputs/compress-debug-sections.sllvm-revision.src/lld/trunk/test/ELF/linkerscript/Inputs/compress-debug-sections.s
The file was added/lld/trunk/test/ELF/linkerscript/compress-debug-sections.sllvm-revision.src/lld/trunk/test/ELF/linkerscript/compress-debug-sections.s