- Dec 23, 2005
-
-
Evan Cheng authored
support which is fragile. * Fixed a number of bugs. llvm-svn: 24996
-
Jim Laskey authored
llvm-svn: 24995
-
Chris Lattner authored
llvm-svn: 24994
-
Chris Lattner authored
llvm-svn: 24993
-
Chris Lattner authored
llvm-svn: 24992
-
Chris Lattner authored
llvm-svn: 24991
-
Evan Cheng authored
llvm-svn: 24990
-
Evan Cheng authored
llvm-svn: 24989
-
Evan Cheng authored
currently used. llvm-svn: 24988
-
Chris Lattner authored
llvm-svn: 24987
-
Chris Lattner authored
llvm-svn: 24986
-
Chris Lattner authored
void test3(va_list Y); void test2(int F, ...) { va_list X; va_start(X, F); test3(X); } into this: test2: save -104, %o6, %o6 st %i5, [%i6+88] st %i4, [%i6+84] st %i3, [%i6+80] st %i2, [%i6+76] st %i1, [%i6+72] add %i6, 72, %o0 st %o0, [%i6+-4] call test3 nop restore %g0, %g0, %g0 retl nop The simple isel emits: test2: save -96, %o6, %o6 st %i0, [%i6+68] st %i1, [%i6+72] st %i2, [%i6+76] st %i3, [%i6+80] st %i4, [%i6+84] st %i5, [%i6+88] or %g0, 1, %l0 or %g0, 4, %l1 umul %l0, %l1, %l0 add %l0, 7, %l0 and %l0, -8, %l0 sub %o6, %l0, %o6 add %o6, 96, %l0 add %i6, 72, %l1 st %l1, [%l0] ld [%l0], %o0 call test3 nop restore %g0, %g0, %g0 retl nop llvm-svn: 24985
-
Chris Lattner authored
llvm-svn: 24984
-
Chris Lattner authored
void bar(double Y, double *X) { *X = Y; } to this: bar: save -96, %o6, %o6 st %i1, [%i2+4] st %i0, [%i2] restore %g0, %g0, %g0 retl nop instead of this: bar: save -104, %o6, %o6 st %i1, [%i6+-4] st %i0, [%i6+-8] ldd [%i6+-8], %f0 std %f0, [%i2] restore %g0, %g0, %g0 retl nop on sparcv8. llvm-svn: 24983
-
Chris Lattner authored
This allows us to compile this: void foo(double); void bar(double *X) { foo(*X); } To this: bar: save -96, %o6, %o6 ld [%i0+4], %o1 ld [%i0], %o0 call foo nop restore %g0, %g0, %g0 retl nop instead of this: bar: save -104, %o6, %o6 ldd [%i0], %f0 std %f0, [%i6+-8] ld [%i6+-4], %o1 ld [%i6+-8], %o0 call foo nop restore %g0, %g0, %g0 retl nop on SparcV8. llvm-svn: 24982
-
Chris Lattner authored
void foo(double); void bar(double X) { foo(X); } to this: bar: save -96, %o6, %o6 or %g0, %i0, %o0 or %g0, %i1, %o1 call foo nop restore %g0, %g0, %g0 retl nop instead of this: bar: save -112, %o6, %o6 st %i1, [%i6+-4] st %i0, [%i6+-8] ldd [%i6+-8], %f0 std %f0, [%i6+-16] ld [%i6+-12], %o1 ld [%i6+-16], %o0 call foo nop restore %g0, %g0, %g0 retl nop on V8. llvm-svn: 24981
-
Chris Lattner authored
conversions. This allows V8 to compiles this: void %test() { call float %test2( float 1.000000e+00, float 2.000000e+00, double 3.000000e+00, double* null ) ret void } into: test: save -96, %o6, %o6 sethi 0, %o3 sethi 1049088, %o2 sethi 1048576, %o1 sethi 1040384, %o0 or %g0, %o3, %o4 call test2 nop restore %g0, %g0, %g0 retl nop instead of: test: save -112, %o6, %o6 sethi 0, %o4 sethi 1049088, %l0 st %o4, [%i6+-12] st %l0, [%i6+-16] ld [%i6+-12], %o3 ld [%i6+-16], %o2 sethi 1048576, %o1 sethi 1040384, %o0 call test2 nop restore %g0, %g0, %g0 retl nop llvm-svn: 24980
-
Chris Lattner authored
llvm-svn: 24979
-
Chris Lattner authored
llvm-svn: 24978
-
Jeff Cohen authored
llvm-svn: 24977
-
Chris Lattner authored
to represent the int part (because it's always 32-bits) llvm-svn: 24976
-
Chris Lattner authored
llvm-svn: 24975
-
Chris Lattner authored
llvm-svn: 24974
-
Chris Lattner authored
llvm-svn: 24973
-
Chris Lattner authored
llvm-svn: 24972
-
Chris Lattner authored
llvm-svn: 24971
-
Chris Lattner authored
llvm-svn: 24970
-
Chris Lattner authored
llvm-svn: 24969
-
- Dec 22, 2005
-
-
Reid Spencer authored
llvm-svn: 24968
-
Chris Lattner authored
llvm-svn: 24967
-
Chris Lattner authored
llvm-svn: 24966
-
Chris Lattner authored
llvm-svn: 24965
-
Chris Lattner authored
llvm-svn: 24964
-
Reid Spencer authored
Implement the suggested check to ensure that out-of-range float constants don't get accepted by LLVM accidentally. Adjust the supporting test cases as well. llvm-svn: 24963
-
Chris Lattner authored
llvm-svn: 24962
-
Reid Spencer authored
Generally, remove use of fork/exec from bugpoint in favor of the portable sys::Program::ExecuteAndWait method. This change requires two new options to bugpoint to tell it that it is running in "child" mode. In this mode, it reads its input and runs the passes. The result code signals to the parent instance of bugpoint what happened (success, fail, crash). This change should make bugpoint usable on Win32 systems. llvm-svn: 24961
-
Reid Spencer authored
* Allow the ExecuteAndWait to return negative values if a signal is detected as the reason for the child termination. This is needed to support bugpoint detecting bad things in its child processes. llvm-svn: 24960
-
Chris Lattner authored
rework. llvm-svn: 24959
-
Chris Lattner authored
llvm-svn: 24956
-
Duraid Madina authored
whimper out of doing things the Right Way, and hack up a generic 'BRCALL' instruction, that gets generated when calls are lowered. This gets selected by hand in the DAG isel, where it gets turned into real (i.e. in tablegen) br.call instructions. BUG: this dies on void calls, but seems to work otherwise? llvm-svn: 24952
-