- May 17, 2010
-
-
Jakob Stoklund Olesen authored
This fixes the miscompilations of MultiSource/Applications/JM/l{en,de}cod. Clang now successfully self hosts in a debug build with the fast register allocator. llvm-svn: 103975
-
Eric Christopher authored
llvm-svn: 103974
-
Evan Cheng authored
llvm-svn: 103971
-
Bob Wilson authored
Obvious in retrospect but not fun to debug. llvm-svn: 103969
-
Daniel Dunbar authored
- Don't clear weak reference flag, 'as' was only "trying" to do this, it wasn't actually succeeding. - Clear the "lazy bound" bit when we mark something external. This corresponds roughly to the lazy clearing of the bit that 'as' implements in symbol_table_lookup. - The exact meaning of these flags appears pretty loose, since 'as' isn't very consistent. For now we just try to match 'as', we will clean this up one day hopefully. llvm-svn: 103964
-
Jakob Stoklund Olesen authored
llvm-svn: 103962
-
Jakob Stoklund Olesen authored
llvm-svn: 103961
-
Evan Cheng authored
Using NEON load / store multiple instructions will no longer create gobs of vmov of D registers! llvm-svn: 103960
-
Daniel Dunbar authored
variable has not yet been used in an expression. This allows us to support a few cases that show up in real code (mostly because gcc generates it for Objective-C on Darwin), without giving up a reasonable semantic model for assignment. llvm-svn: 103950
-
Jakob Stoklund Olesen authored
While that approach works wonders for register pressure, it tends to break everything. This should unbreak the arm-linux builder and fix a number of miscompilations. llvm-svn: 103946
-
Jakob Stoklund Olesen authored
llvm-svn: 103940
-
Jakob Stoklund Olesen authored
out aliases when allocating. Clean up allocVirtReg(). Use calcSpillCost() to allow more aggressive hinting. Now the hint is always taken unless blocked by a reserved register. This leads to more coalescing, lower register pressure, and less spilling. llvm-svn: 103939
-
Zhongxing Xu authored
llvm-svn: 103936
-
Jakob Stoklund Olesen authored
This makes allocation independent on the ordering of use-def chains. llvm-svn: 103935
-
Jakob Stoklund Olesen authored
llvm-svn: 103934
-
Jakob Stoklund Olesen authored
This is safe to do because the physreg has been marked UsedInInstr and the kill flag will be set on the last operand using the virtreg if there are more then one. llvm-svn: 103933
-
Jakob Stoklund Olesen authored
llvm-svn: 103931
-
Jakob Stoklund Olesen authored
through the very long list of call-clobbered registers. We just assume all registers are clobbered. llvm-svn: 103930
-
Jakob Stoklund Olesen authored
llvm-svn: 103929
-
Eric Christopher authored
symbol to the file as we have it. Simplifies out tbss handling. llvm-svn: 103928
-
Jakob Stoklund Olesen authored
Debug code doesn't use callee saved registers anyway, and the code is simpler this way. Now spillVirtReg always kills, and the isKill parameter is not needed. llvm-svn: 103927
-
Jakob Stoklund Olesen authored
llvm-svn: 103926
-
Jakob Stoklund Olesen authored
llvm-svn: 103925
-
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
-
Evan Cheng authored
llvm-svn: 103917
-
- May 16, 2010
-
-
Dale Johannesen authored
llvm-svn: 103915
-
Dale Johannesen authored
<1xi64> -> i64 to work in MMX registers on hosts where -no-sse is the default (not mine). The right thing is to accept this and make i64->f64 conversions go through memory, but I don't have time right now. llvm-svn: 103914
-
Dale Johannesen authored
(This worked as of about 6 months ago and I didn't track down exactly what broke it; I think this fix is appropriate.) llvm-svn: 103911
-
Anton Korobeynikov authored
llvm-svn: 103903
-
Anton Korobeynikov authored
Patch by Charles Davis and Steven Watanabe! llvm-svn: 103902
-
Anton Korobeynikov authored
llvm-svn: 103901
-
Evan Cheng authored
llvm-svn: 103898
-
Rafael Espindola authored
LLVMgold.so both in both the build and install directories. llvm-svn: 103897
-
Rafael Espindola authored
llvm-svn: 103896
-
- 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
-
Anton Korobeynikov authored
This can be extended later on to handle more "complex" constants. llvm-svn: 103881
-
Anton Korobeynikov authored
Temporary emit it as raw bytes until it will be added to binutils as well. llvm-svn: 103878
-
Chris Lattner authored
Evzen Muller! llvm-svn: 103877
-
Chris Lattner authored
patch by Evzen Muller! llvm-svn: 103876
-