llvm-project/llvm/test
Kyle Butt 1452b76f1f [PPC]: Peephole optimize small accesss to aligned globals.
Access to aligned globals gives us a chance to peephole optimize nonzero
offsets. If a struct is 4 byte aligned, then accesses to bytes 0-3 won't
overflow the available displacement. For example:
        addis 3, 2, b4v@toc@ha
        addi 4, 3, b4v@toc@l
        lbz 5, b4v@toc@l(3) ; This is the result of the current peephole
        lbz 6, 1(4)         ; optimizer
        lbz 7, 2(4)
        lbz 8, 3(4)
If b4v is 4-byte aligned, we can skip using register 4 because we know
that b4v@toc@l+{1,2,3} won't overflow 32K, and instead generate:
        addis 3, 2, b4v@toc@ha
        lbz 4, b4v@toc@l(3)
        lbz 5, b4v@toc@l+1(3)
        lbz 6, b4v@toc@l+2(3)
        lbz 7, b4v@toc@l+3(3)
Saving a register and an addition.
Larger alignments allow larger structures/arrays to be optimized.

llvm-svn: 255319
2015-12-11 00:47:36 +00:00
..
Analysis [X86][SSE] Update the cost table for integer-integer conversions on SSE2/SSE4.1. 2015-12-11 00:31:39 +00:00
Assembler Macro debug info support in LLVM IR 2015-12-10 12:56:35 +00:00
Bindings Disable Go bindings test with MSan, it has tons of linker errors 2015-11-19 00:05:20 +00:00
Bitcode Revert "Change memcpy/memset/memmove to have dest and source alignments." 2015-11-19 05:56:52 +00:00
BugPoint [bugpoint] Add a named metadata (+their operands) reducer 2015-11-06 00:12:50 +00:00
CodeGen [PPC]: Peephole optimize small accesss to aligned globals. 2015-12-11 00:47:36 +00:00
DebugInfo Revert "Implement a new pass - LiveDebugValues - to compute the set of live DEBUG_VALUEs at each basic block and insert them. Reviewed and accepted at: http://reviews.llvm.org/D11933" 2015-12-09 08:17:42 +00:00
Examples
ExecutionEngine [RuntimeDyld] Don't allocate unnecessary stub buffer space 2015-11-23 21:47:51 +00:00
Feature Have 'optnone' respect the -fast-isel=false option. 2015-11-30 21:56:16 +00:00
FileCheck
Instrumentation Create llvm.global_ctors in the new format. 2015-12-06 16:18:25 +00:00
Integer
JitListener DI: Reverse direction of subprogram -> function edge. 2015-11-05 22:03:56 +00:00
LTO [LTO] Add options to llvm-lto to select output format and dump merged module 2015-11-20 00:13:05 +00:00
LibDriver
Linker Fix another case where the linkage was not set. 2015-12-10 18:44:26 +00:00
MC [AArch64] Fix FP16 vector instructions that should only accept low registers 2015-12-09 14:32:11 +00:00
Object Stabilize llvm/test/Object/archive-update.test a bit. 2015-12-07 23:15:57 +00:00
Other [llc/opt] Add an option to run all passes twice 2015-12-04 21:56:46 +00:00
SymbolRewriter [opaque pointer type] Add textual IR support for explicit type parameter for global aliases 2015-09-11 03:22:04 +00:00
TableGen Add new vector types for 512-, 1024- and 2048-bit vectors 2015-11-24 13:07:35 +00:00
Transforms EarlyCSE: add tests 2015-12-10 20:24:34 +00:00
Unit
Verifier [Verifier] Fix !dbg validation if Scope is the Subprogram 2015-12-06 23:05:38 +00:00
YAMLParser
tools Slit lib/Linker in two. 2015-12-10 14:19:35 +00:00
.clang-format
CMakeLists.txt [llvm-dwp] Add missing dependency from llvm tests on the llvm-dwp tool 2015-12-01 00:57:05 +00:00
Makefile Add a way to skip the Go bindings tests even when Go is configured in 2015-09-10 05:47:43 +00:00
Makefile.tests
TestRunner.sh
lit.cfg check-llvm: Introduce the new feature "tls". 2015-12-01 01:14:58 +00:00
lit.site.cfg.in Add a way to skip the Go bindings tests even when Go is configured in 2015-09-10 05:47:43 +00:00