llvm-project/llvm/lib
Richard Sandiford 35ec4e356c [SystemZ] Add instruction-shortening pass
When loading immediates into a GR32, the port prefered LHI, followed by
LLILH or LLILL, followed by IILF.  LHI and IILF are natural 32-bit
operations, but LLILH and LLILL also clear the upper 32 bits of the register.
This was represented as taking a 32-bit subreg of a 64-bit assignment.

Using subregs for something as simple as a move immediate was probably
a bad idea.  Also, I have patches to add support for the high-word facility, 
and we don't want something like LLILH and LLILL to stop the high word of
the same GPR from being used.

This patch therefore uses LHI and IILF to begin with and adds a late
machine-specific pass to use LLILH and LLILL if the other half of the
register is not live.  The high-word patches extend this behavior to
IIHF, LLIHL and LLIHH.

No behavioral change intended.

llvm-svn: 191363
2013-09-25 10:11:07 +00:00
..
Analysis MemoryBuiltins: Remove posix_memalign from the list and replace it with a TODO. 2013-09-24 17:49:08 +00:00
AsmParser Implement function prefix data as an IR feature. 2013-09-16 01:08:15 +00:00
Bitcode Implement function prefix data as an IR feature. 2013-09-16 01:08:15 +00:00
CodeGen [PR16882] Ignore noreturn definitions when setting isPhysRegUsed. 2013-09-25 00:26:17 +00:00
DebugInfo llvm-dwarfdump: add missing opening quotation mark lost in r191330 2013-09-24 20:23:36 +00:00
ExecutionEngine Revert "llvm-c: Add LLVMGetPointerToFunction" 2013-09-20 07:00:36 +00:00
IR Initial support for Neon scalar instructions. 2013-09-24 02:47:27 +00:00
IRReader Add 'const' qualifiers to static const char* variables. 2013-07-16 01:17:10 +00:00
LTO Move LTO support library to a component, allowing it to be tested 2013-09-24 23:52:22 +00:00
Linker Implement function prefix data as an IR feature. 2013-09-16 01:08:15 +00:00
MC MC: Remove vestigial PCSymbol field from AsmInfo 2013-09-25 09:36:11 +00:00
Object ELF: Add support for the exclude section bit for gas compat. 2013-09-15 19:53:20 +00:00
Option Fix another mistake in r190442. 2013-09-10 23:22:56 +00:00
Support Provide basic type safety for array_pod_sort comparators. 2013-09-22 14:09:50 +00:00
TableGen Add an error check for a typo I accidentally made in a td file that caused an assert to fire. 2013-08-20 04:22:09 +00:00
Target [SystemZ] Add instruction-shortening pass 2013-09-25 10:11:07 +00:00
Transforms [msan] Fix -Wreturn-type warnings in non-self-hosted build. 2013-09-25 08:56:00 +00:00
CMakeLists.txt Move LTO support library to a component, allowing it to be tested 2013-09-24 23:52:22 +00:00
LLVMBuild.txt Move LTO support library to a component, allowing it to be tested 2013-09-24 23:52:22 +00:00
Makefile Move LTO support library to a component, allowing it to be tested 2013-09-24 23:52:22 +00:00