1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-23 21:13:02 +02:00
llvm-mirror/test/CodeGen
James Molloy 2b4c2966f2 [ARM] Promote small global constants to constant pools
If a constant is unamed_addr and is only used within one function, we can save
on the code size and runtime cost of an indirection by changing the global's storage
to inside the constant pool. For example, instead of:

      ldr r0, .CPI0
      bl printf
      bx lr
    .CPI0: &format_string
    format_string: .asciz "hello, world!\n"

We can emit:

      adr r0, .CPI0
      bl printf
      bx lr
    .CPI0: .asciz "hello, world!\n"

This can cause significant code size savings when many small strings are used in one
function (4 bytes per string).

This recommit contains fixes for a nasty bug related to fast-isel fallback - because
fast-isel doesn't know about this optimization, if it runs and emits references to
a string that we inline (because fast-isel fell back to SDAG) we will end up
with an inlined string and also an out-of-line string, and we won't emit the
out-of-line string, causing backend failures.

It also contains fixes for emitting .text relocations which made the sanitizer
bots unhappy.

llvm-svn: 282241
2016-09-23 12:15:58 +00:00
..
AArch64 GlobalISel: handle stack-based parameters on AArch64. 2016-09-22 13:49:25 +00:00
AMDGPU AMDGPU/SI: Include implicit arguments in kernarg_segment_byte_size 2016-09-23 01:33:26 +00:00
ARM [ARM] Promote small global constants to constant pools 2016-09-23 12:15:58 +00:00
BPF
Generic
Hexagon [Hexagon] segv while processing SUnit with nullNodePtr 2016-09-17 16:21:09 +00:00
Inputs
Lanai
Mips [mips] LLVM PR/30197 - Tail call incorrectly clobbers arguments for mips 2016-09-21 09:43:40 +00:00
MIR
MSP430
NVPTX llvm/test/CodeGen/NVPTX/zero-cs.ll: Relax an expression to match in -Asserts. 2016-09-21 04:43:11 +00:00
PowerPC [PowerPC] Sign extend sub-word values for atomic comparisons 2016-09-22 19:06:38 +00:00
SPARC
SystemZ
Thumb
Thumb2
WebAssembly [WebAssembly] Fix function types of CFGStackify tests 2016-09-16 20:58:31 +00:00
WinEH
X86 i386 does not support optimized swifterror handling 2016-09-22 20:06:25 +00:00
XCore