- Dec 20, 2011
-
-
-
Andrew Trick authored
llvm-svn: 146951
-
Andrew Trick authored
Fixes PR11571: Instruction does not dominate all uses llvm-svn: 146950
-
Bob Wilson authored
We used to rely on the *eh_sjlj_setjmp instructions to mark that a function with setjmp/longjmp exception handling clobbers all the registers. But with the recent reorganization of ARM EH, those eh_sjlj_setjmp instructions are expanded away earlier, before PEI can see them to determine what registers to save and restore. Mark the dispatchsetup instruction in the same way, since that instruction cannot be expanded early. This also more accurately reflects when the registers are clobbered. llvm-svn: 146949
-
Chris Lattner authored
llvm-svn: 146940
-
Dan Gohman authored
llvm-svn: 146939
-
Jim Grosbach authored
"mov r1, r2, lsl #0" should assemble as "mov r1, r2" even though it's not strictly legal UAL syntax. It's a common extension and the friendly thing to do. rdar://10604663 llvm-svn: 146937
-
Chris Lattner authored
merging types by name when we can. We still don't guarantee type name linkage but we do it when obviously the right thing to do. This makes LTO type names easier to read, for example. llvm-svn: 146932
-
Chris Lattner authored
fix PR11464 by preventing the linker from mapping two different struct types from the source module onto the same opaque destination type. An opaque type can only be resolved to one thing or another after all. llvm-svn: 146929
-
Chris Lattner authored
llvm-svn: 146928
-
Dan Gohman authored
llvm-svn: 146927
-
Jim Grosbach authored
e.g., "vmov.i32 d4, #-118" can be assembled as "vmvn.i32 d4, #117" rdar://10603913 llvm-svn: 146925
-
Evan Cheng authored
llvm-svn: 146923
-
Jim Grosbach authored
rdar://9932658 llvm-svn: 146921
-
- Dec 19, 2011
-
-
Evan Cheng authored
unpredicated. That is, turn subeq r0, r1, #1 addne r0, r1, #1 into sub r0, r1, #1 addne r0, r1, #1 For targets where conditional instructions are always executed, this may be beneficial. It may remove pseudo anti-dependency in out-of-order execution CPUs. e.g. op r1, ... str r1, [r10] ; end-of-life of r1 as div result cmp r0, #65 movne r1, #44 ; raw dependency on previous r1 moveq r1, #12 If movne is unpredicated, then op r1, ... str r1, [r10] cmp r0, #65 mov r1, #44 ; r1 written unconditionally moveq r1, #12 Both mov and moveq are no longer depdendent on the first instruction. This gives the out-of-order execution engine more freedom to reorder them. This has passed entire LLVM test suite. But it has not been enabled for any ARM variant pending more performance evaluation. rdar://8951196 llvm-svn: 146914
-
Eli Friedman authored
llvm-svn: 146913
-
Akira Hatanaka authored
llvm-svn: 146901
-
Akira Hatanaka authored
patterns emit a single LUi instruction instead of a pair of LUi and ORi. llvm-svn: 146900
-
Eli Friedman authored
llvm-svn: 146897
-
Akira Hatanaka authored
llvm-svn: 146896
-
Jim Grosbach authored
rdar://10602276 llvm-svn: 146895
-
Akira Hatanaka authored
direct-object emitter should emit the appropriate shift instruction depending on the shift amount. llvm-svn: 146893
-
Jim Grosbach authored
llvm-svn: 146892
-
Akira Hatanaka authored
llvm-svn: 146889
-
Akira Hatanaka authored
This change reduces the number of instructions generated. For example, (load (add (sub $n0, $n1), (MipsLo got(s)))) results in the following sequence of instructions: 1. sub $n2, $n0, $n1 2. lw got(s)($n2) Previously, three instructions were needed. 1. sub $n2, $n0, $n1 2. addiu $n3, $n2, got(s) 3. lw 0($n3) llvm-svn: 146888
-
Jim Grosbach authored
llvm-svn: 146887
-
Jim Grosbach authored
llvm-svn: 146885
-
Jim Grosbach authored
There's more variation that we need to handle. Error checking will need to be on operand predicates. llvm-svn: 146884
-
Jim Grosbach authored
llvm-svn: 146882
-
Jakob Stoklund Olesen authored
Add the new TableGen register class synthesizer feature to the release notes. llvm-svn: 146875
-
Jakob Stoklund Olesen authored
Now that getMatchingSuperRegClass() returns accurate results, it can be used to compute constraints imposed by instructions using a sub-register of a virtual register. This means we can recompute the register class of any virtual register by combining the constraints from all its uses. llvm-svn: 146874
-
Jakob Stoklund Olesen authored
Use information computed while inferring new register classes to emit accurate, table-driven implementations of getMatchingSuperRegClass(). Delete the old manual, error-prone implementations in the targets. llvm-svn: 146873
-
Jakob Stoklund Olesen authored
Teach TableGen to create the missing register classes needed for getMatchingSuperRegClass() to return maximal results. The function is still not auto-generated, so it still returns inexact results. This produces these new register classes: ARM: QQPR_with_dsub_0_in_DPR_8 QQQQPR_with_dsub_0_in_DPR_8 X86: GR64_with_sub_32bit_in_GR32_NOAX GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOSP GR64_with_sub_16bit_in_GR16_NOREX GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX_NOSP GR64_TCW64_and_GR64_with_sub_32bit_in_GR32_NOAX GR64_TC_and_GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_NOREX GR64_with_sub_32bit_in_GR32_TC GR64_with_sub_32bit_in_GR32_ABCD_and_GR32_NOAX GR64_with_sub_32bit_in_GR32_NOAX_and_GR32_TC GR64_with_sub_32bit_in_GR32_AD GR64_with_sub_32bit_in_GR32_AD_and_GR32_NOAX The other targets in the tree are not weird enough to be affected. llvm-svn: 146872
-
Manuel Klimek authored
llvm-svn: 146864
-
Manuel Klimek authored
llvm-svn: 146863
-
- Dec 18, 2011
-
-
Jakub Staszak authored
- Remove trailing spaces. llvm-svn: 146854
-
Benjamin Kramer authored
llvm-svn: 146852
-
Joerg Sonnenberger authored
attribute themselve. llvm-svn: 146851
-
Benjamin Kramer authored
Some compilers were complaining about passing StringRef to it. llvm-svn: 146850
-
Dylan Noblesmith authored
And fix the double-[]. It was including the [] as part of the project name somehow, resulting in PACKAGE_TARNAME "-llvm-" and a strange docdir default: ./configure --help | grep docdir --docdir=DIR documentation root [DATAROOTDIR/doc/-llvm-] llvm-svn: 146849
-