Go to file
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
clang StaticAnalyzer/Core/RegionStore.cpp: Prune one last "\param IsConst", as fixup to r191342. [-Wdocumentation] 2013-09-25 08:17:20 +00:00
clang-tools-extra clang-apply-replacements: Clean up -help and -version 2013-09-24 18:14:54 +00:00
compiler-rt [Sanitizer] Don't include wordexp.h on Android 2013-09-25 07:41:46 +00:00
debuginfo-tests don't use CHECK-NEXT because it may be on the same line. 2013-09-18 23:01:54 +00:00
libclc Parenthesize arguments for mad_hi 2013-09-09 14:36:21 +00:00
libcxx Peter Collingbourne: Fix warnings when compiling with -DNDEBUG. 2013-09-21 21:26:37 +00:00
libcxxabi Adding bad_array_length to libc++abi 2013-09-11 01:42:02 +00:00
lld Make Driver::link and LinkingContext::validate return true on success. 2013-09-24 23:26:34 +00:00
lldb Target::m_suppress_synthetic_value was a hack required to disable synthetic values while passing an SBValue to a synthetic child provider, or incur an endless recursion 2013-09-24 22:58:37 +00:00
llvm [SystemZ] Add instruction-shortening pass 2013-09-25 10:11:07 +00:00
polly clang-format recent change 2013-09-17 03:30:36 +00:00