- May 05, 2011
-
-
Jakob Stoklund Olesen authored
llvm-svn: 130931
-
Eli Friedman authored
Avoid extra vreg copies for arguments passed in registers. Specifically, this can make MachineCSE more effective in some cases (especially in small functions). PR8361 / part of rdar://problem/8259436 . llvm-svn: 130928
-
Eli Friedman authored
llvm-svn: 130926
-
Eli Friedman authored
llvm-svn: 130925
-
Hongbin Zheng authored
llvm-svn: 130920
-
Bill Wendling authored
who used this flag, and it now emits CFI and doesn't emit this anymore. All other targets left this flag "false". <rdar://problem/8486371> llvm-svn: 130918
-
Nick Lewycky authored
crash. llvm-svn: 130911
-
Nick Lewycky authored
llvm-svn: 130903
-
Nick Lewycky authored
filename. llvm-svn: 130897
-
Jakob Stoklund Olesen authored
Joining physregs is inherently dangerous because it uses a heuristic to avoid creating invalid code. Linear scan had an emergency spilling mechanism to deal with those rare cases. The new greedy allocator does not. The greedy register allocator is much better at taking hints, so this has almost no impact on code size and quality. The few cases where it matters show up as unit tests that now have -join-physregs enabled explicitly. llvm-svn: 130896
-
Devang Patel authored
llvm-svn: 130895
-
Devang Patel authored
llvm-svn: 130894
-
Jakob Stoklund Olesen authored
It is OK for B to be any GR8_ABCD_H superclass, the returned register class doesn't have to map surjectively onto B. llvm-svn: 130892
-
Bill Wendling authored
landing pad as its successor. SjLj exception handling jumps to the correct landing pad via a switch statement that's generated right before code-gen. Loosen the constraint in the machine instruction verifier to allow for this. Note, this isn't the most rigorous check since we cannot determine where that switch statement came from. But it's marginally better than turning this check off when SjLj exceptions are used. <rdar://problem/9187612> llvm-svn: 130881
-
Devang Patel authored
llvm-svn: 130880
-
Eli Friedman authored
Original message: Teach MachineCSE how to do simple cross-block CSE involving physregs. This allows, for example, eliminating duplicate cmpl's on x86. Part of rdar://problem/8259436 . llvm-svn: 130877
-
- May 04, 2011
-
-
Devang Patel authored
llvm-svn: 130876
-
Devang Patel authored
llvm-svn: 130869
-
Eli Friedman authored
llvm-svn: 130867
-
Eli Friedman authored
Teach MachineCSE how to do simple cross-block CSE involving physregs. This allows, for example, eliminating duplicate cmpl's on x86. Part of rdar://problem/8259436 . llvm-svn: 130862
-
Jakob Stoklund Olesen authored
llvm-svn: 130857
-
Devang Patel authored
llvm-svn: 130854
-
Rafael Espindola authored
llvm-svn: 130850
-
Akira Hatanaka authored
Prevent instructions using $gp from being placed between a jalr and the instruction that restores the clobbered $gp. llvm-svn: 130847
-
Rafael Espindola authored
it is both inefficient and unexpected by dwarfdump. Change to a DW_FORM_data4. While in here, change the predicate name to reflect that the position is not really absolute (it is an offset), just that the linker needs a relocation. llvm-svn: 130846
-
Jakob Stoklund Olesen authored
Physreg joining is still on by default, but I will turn it off shortly. llvm-svn: 130844
-
Devang Patel authored
Tighten up check for empty (i.e. no meaningful debug info) module. This fixes dwarf-die2.c test case from gcc test suite. llvm-svn: 130842
-
Duncan Sands authored
but according to my super-optimizer there are only two missed simplifications of -instsimplify kind when compiling bzip2, and this is one of them. It amuses me to have bzip2 be perfectly optimized as far as instsimplify goes! llvm-svn: 130840
-
Nick Lewycky authored
frontend, if applicable. llvm-svn: 130835
-
Andrew Trick authored
This adds functionality to remove size/zero extension during indvars without generating a canonical IV and rewriting all IV users. It's disabled by default so should have no effect on codegen. Work in progress. llvm-svn: 130829
-
Jakob Stoklund Olesen authored
coalescing. llvm-svn: 130814
-
Jakob Stoklund Olesen authored
LiveVariables doesn't understand that clobbering D0 and D1 completely overwrites Q0, so if Q0 is live-in to a function, its live range will extend beyond a function call that only clobbers D0 and D1. This shows up in the ARM/2009-11-01-NeonMoves test case. LiveVariables should probably implement the much stricter rules for physreg liveness that RAFast imposes - a physreg is killed by the first use of any alias. llvm-svn: 130801
-
Andrew Trick authored
Only create a canonical IV for backedge taken count if it will actually be used by LinearFunctionTestReplace. And some related cleanup, preparing to reduce dependence on canonical IVs. No significant effect on x86 or arm in the test-suite. llvm-svn: 130799
-
- May 03, 2011
-
-
Devang Patel authored
Even if the subprogram is going to use AT_specification, emit DW_AT_MIPS_linkage_name. This helps gdb and fixes var-path-expr.exp regression reported by gdb testsuite. llvm-svn: 130794
-
Daniel Dunbar authored
(and should thus never be done). - Should fix a crash on win32. llvm-svn: 130793
-
Bill Wendling authored
<rdar://problem/8460511> llvm-svn: 130791
-
Jakob Stoklund Olesen authored
Register coalescing can sometimes create live ranges that end in the middle of a basic block without any killing instruction. When SplitKit detects this, it will repair the live range by shrinking it to its uses. Live range splitting also needs to know about this. When the range shrinks so much that it becomes allocatable, live range splitting fails because it can't find a good split point. It is paranoid about making progress, so an allocatable range is considered an error. The coalescer should really not be creating these bad live ranges. They appear when coalescing dead copies. llvm-svn: 130787
-
Duncan Sands authored
max(a,b) >= a -> true. According to my super-optimizer, these are by far the most common simplifications (of the -instsimplify kind) that occur in the testsuite and aren't caught by -std-compile-opts. llvm-svn: 130780
-
Akira Hatanaka authored
llvm-svn: 130774
-
Bob Wilson authored
llvm-svn: 130766
-