- May 17, 2010
-
-
Evan Cheng authored
Yes, if the redef is a copy, update the old val# with the copy. But make sure to clear the copy field if the redef is not a copy. llvm-svn: 103922
-
- May 15, 2010
-
-
Dale Johannesen authored
The implementation in LegalizeIntegerTypes to handle this as sint64->float + appropriate power of 2 is subject to double rounding, considered incorrect by numerics people. Use this implementation only when it is safe. This leads to using library calls in some cases that produced inline code before, but it's correct now. (EVTToAPFloatSemantics belongs somewhere else, any suggestions?) Add a correctly rounding (though not particularly fast) conversion that uses X87 80-bit computations for x86-32. 7885399, 5901940. This shows up in gcc.c-torture/execute/ieee/rbug.c in the gcc testsuite on some platforms. llvm-svn: 103883
-
Dale Johannesen authored
llvm-svn: 103882
-
Chris Lattner authored
patch by Evzen Muller! llvm-svn: 103876
-
Chandler Carruth authored
a condition's grouping. Every other use of Allocatable.test(Hint) groups it the same way as it is indented, so move the parentheses to agree with that grouping. llvm-svn: 103869
-
Jakob Stoklund Olesen authored
When working top-down in a basic block, substituting physregs for virtregs, the use-def chains are kept up to date. That means we can recognize a virtreg kill by the use-def chain becoming empty. This makes the fast allocator independent of incoming kill flags. llvm-svn: 103866
-
Evan Cheng authored
llvm-svn: 103850
-
Evan Cheng authored
instructions. e.g. %reg1026<def> = VLDMQ %reg1025<kill>, 260, pred:14, pred:%reg0 %reg1027<def> = EXTRACT_SUBREG %reg1026, 6 %reg1028<def> = EXTRACT_SUBREG %reg1026<kill>, 5 ... %reg1029<def> = REG_SEQUENCE %reg1028<kill>, 5, %reg1027<kill>, 6, %reg1028, 7, %reg1027, 8, %reg1028, 9, %reg1027, 10, %reg1030<kill>, 11, %reg1032<kill>, 12 After REG_SEQUENCE is eliminated, we are left with: %reg1026<def> = VLDMQ %reg1025<kill>, 260, pred:14, pred:%reg0 %reg1029:6<def> = EXTRACT_SUBREG %reg1026, 6 %reg1029:5<def> = EXTRACT_SUBREG %reg1026<kill>, 5 The regular coalescer will not be able to coalesce reg1026 and reg1029 because it doesn't know how to combine sub-register indices 5 and 6. Now 2-address pass will consult the target whether sub-registers 5 and 6 of reg1026 can be combined to into a larger sub-register (or combined to be reg1026 itself as is the case here). If it is possible, it will be able to replace references of reg1026 with reg1029 + the larger sub-register index. llvm-svn: 103835
-
Dan Gohman authored
setting kill flags. llvm-svn: 103832
-
Jakob Stoklund Olesen authored
llvm-svn: 103831
-
Jakob Stoklund Olesen authored
llvm-svn: 103830
-
Jakob Stoklund Olesen authored
llvm-svn: 103828
-
Dan Gohman authored
llvm-svn: 103827
-
- May 14, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 103823
-
Devang Patel authored
llvm-svn: 103822
-
Jakob Stoklund Olesen authored
llvm-svn: 103821
-
Jakob Stoklund Olesen authored
llvm-svn: 103820
-
Jim Grosbach authored
llvm-svn: 103807
-
Jim Grosbach authored
llvm-svn: 103806
-
Jim Grosbach authored
while debugging what's mishandled about them in the post-RA pass. llvm-svn: 103805
-
Bill Wendling authored
the variable actually tracks. N.B., several back-ends are using "HasCalls" as being synonymous for something that adjusts the stack. This isn't 100% correct and should be looked into. llvm-svn: 103802
-
Devang Patel authored
llvm-svn: 103798
-
Jakob Stoklund Olesen authored
- Kill is implicit when use and def registers are identical. - Only virtual registers can differ. Add a -verify-fast-regalloc to run the verifier before the fast allocator. llvm-svn: 103797
-
Jakob Stoklund Olesen authored
This adds extra security against using clobbered physregs, and it adds kill markers to physreg uses. llvm-svn: 103784
-
Daniel Dunbar authored
-filetype=obj test, and -filetype=obj leaks a few objects. Added a FIXME, we need to sort out the ownership model for the various MC objects. llvm-svn: 103769
-
Daniel Dunbar authored
- This is a hack, but I can't decide the best place to handle this. Chris? llvm-svn: 103765
-
Jakob Stoklund Olesen authored
llvm-svn: 103764
-
Jakob Stoklund Olesen authored
llvm-svn: 103748
-
Jakob Stoklund Olesen authored
This loop is quadratic in the capacity for a DenseMap: while(!map.empty()) map.erase(map.begin()); Instead we now do a normal begin() - end() iteration followed by map.clear(). That also has the nice sideeffect of shrinking the map capacity on demand. llvm-svn: 103747
-
Dale Johannesen authored
one was subject to double rounding in extreme cases. llvm-svn: 103744
-
- May 13, 2010
-
-
Jakob Stoklund Olesen authored
llvm-svn: 103739
-
Dan Gohman authored
when they move instructions. llvm-svn: 103737
-
Dan Gohman authored
use of it in MachineCSE. llvm-svn: 103726
-
Dan Gohman authored
basic block. llvm-svn: 103725
-
Jakob Stoklund Olesen authored
This causes way more identity copies to be generated, ripe for coalescing. llvm-svn: 103686
-
Jakob Stoklund Olesen authored
llvm-svn: 103685
-
Evan Cheng authored
If REG_SEQUENCE source is livein, copy it first. Also, update livevariables information when a copy is introduced. llvm-svn: 103680
-
Evan Cheng authored
llvm-svn: 103679
-
- May 12, 2010
-
-
Jakob Stoklund Olesen authored
The X86 floating point stack pass and others depend on good kill flags. llvm-svn: 103635
-
Duncan Sands authored
llvm-svn: 103586
-