1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-23 03:02:36 +01:00
llvm-mirror/lib
Jakob Stoklund Olesen 45496cea60 Always let value types influence register classes.
When creating a virtual register for a def, the value type should be
used to pick the register class. If we only use the register class
constraint on the instruction, we might pick a too large register class.

Some registers can store values of different sizes. For example, the x86
xmm registers can hold f32, f64, and 128-bit vectors. The three
different value sizes are represented by register classes with identical
register sets: FR32, FR64, and VR128. These register classes have
different spill slot sizes, so it is important to use the right one.

The register class constraint on an instruction doesn't necessarily care
about the size of the value its defining. The value type determines
that.

This fixes a problem where InstrEmitter was picking 32-bit register
classes for 64-bit values on SPARC.

llvm-svn: 199187
2014-01-14 06:18:38 +00:00
..
Analysis [PM] Split DominatorTree into a concrete analysis result object which 2014-01-13 13:07:17 +00:00
AsmParser Move the LLVM IR asm writer header files into the IR directory, as they 2014-01-07 12:34:26 +00:00
Bitcode Update getLazyBitcodeModule to use ErrorOr for error handling. 2014-01-13 18:31:04 +00:00
CodeGen Always let value types influence register classes. 2014-01-14 06:18:38 +00:00
DebugInfo llvm-dwarfdump: type unit dwo support 2014-01-09 05:08:24 +00:00
ExecutionEngine Re-sort #include lines again, prior to moving headers around. 2014-01-13 08:04:33 +00:00
IR Fix llc to not reuse spill slots in functions that invoke setjmp() 2014-01-14 04:20:01 +00:00
IRReader Update getLazyBitcodeModule to use ErrorOr for error handling. 2014-01-13 18:31:04 +00:00
Linker Revert "Move copying of global initializers below the cloning of functions." 2013-11-09 00:43:18 +00:00
LTO Update getLazyBitcodeModule to use ErrorOr for error handling. 2014-01-13 18:31:04 +00:00
MC Replace .mips_hack_stocg with ".set micromips" and ".set nomicromips". 2014-01-14 04:25:13 +00:00
Object Re-sort all of the includes with ./utils/sort_includes.py so that 2014-01-07 11:48:04 +00:00
Option Avoid buffer copies when a Twine already is a StringRef. 2013-12-03 18:18:28 +00:00
Support raw_fd_ostream: Don't change STDERR to O_BINARY, or w*printf() (in assert()) would barf wide chars after llvm::errs(). 2014-01-12 16:14:24 +00:00
TableGen [TableGen] Correctly generate implicit anonymous prototype defs in multiclasses 2014-01-02 20:47:09 +00:00
Target Switch the NEON register class from QPR to DPair. 2014-01-14 06:18:34 +00:00
Transforms [PM] Split DominatorTree into a concrete analysis result object which 2014-01-13 13:07:17 +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 Reformat Makefile. No other changes. 2013-10-30 04:03:03 +00:00