| Commit message (Collapse) | Author | Age | Files | Lines |
| ... | |
| |
|
|
|
|
| |
Minor bugfixes
llvm-svn: 19376
|
| |
|
|
| |
llvm-svn: 19367
|
| |
|
|
|
|
|
|
|
|
|
| |
store float 123.45, float* %P
as an integer store. This adds handling of float immediate stores as integers
for arguments passed function calls.
This is now tested by CodeGen/X86/store-fp-constant.ll
llvm-svn: 19364
|
| |
|
|
|
|
|
| |
For now, this is the default, as the current selector is missing some big pieces.
To enable the new selector, pass -disable-pattern-isel=false to llc or lli.
llvm-svn: 19335
|
| |
|
|
|
|
| |
pieces, but can already do amazing things in some cases.
llvm-svn: 19334
|
| |
|
|
| |
llvm-svn: 19333
|
| |
|
|
| |
llvm-svn: 19332
|
| |
|
|
| |
llvm-svn: 19324
|
| |
|
|
|
|
| |
CodeGen/X86/negatize_zero.ll
llvm-svn: 19313
|
| |
|
|
| |
llvm-svn: 19303
|
| |
|
|
|
|
|
|
|
| |
precisely represented as a float, put it into the constant pool as a
float.
2. Use the cbw/cwd/cdq instructions instead of an explicit SAR for signed
division.
llvm-svn: 19291
|
| |
|
|
| |
llvm-svn: 19289
|
| |
|
|
| |
llvm-svn: 19273
|
| |
|
|
| |
llvm-svn: 19264
|
| |
|
|
|
|
|
|
|
|
|
| |
- unsigned TrueValue = getReg(TrueVal, BB, BB->begin());
+ unsigned TrueValue = getReg(TrueVal);
Fixes the PPC regressions from last night.
The other hunk is just a clarity improvement.
llvm-svn: 19263
|
| |
|
|
|
|
|
| |
to get Visual Studio to link in X86.lib to the executables that need it. There
is another way of doing it.
llvm-svn: 19252
|
| |
|
|
|
|
|
|
| |
addition to being three address, LEA's don't set the flags.
This fixes 186.crafty.
llvm-svn: 19251
|
| |
|
|
| |
llvm-svn: 19249
|
| |
|
|
| |
llvm-svn: 19248
|
| |
|
|
|
|
| |
branches.
llvm-svn: 19247
|
| |
|
|
|
|
|
|
| |
1. Add new instructions for checking parity flags: JP, JNP, SETP, SETNP.
2. Set the isCommutable and isPromotableTo3Address bits on several
instructions.
llvm-svn: 19246
|
| |
|
|
| |
llvm-svn: 19241
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
While we're at it, improve codegen of select instructions. For this
testcase:
int %test(bool %C, int %A, int %B) {
%D = select bool %C, int %A, int %B
ret int %D
}
We used to generate this code:
_test:
cmpwi cr0, r3, 0
bne .LBB_test_2 ;
.LBB_test_1: ;
b .LBB_test_3 ;
.LBB_test_2: ;
or r5, r4, r4
.LBB_test_3: ;
or r3, r5, r5
blr
Now we emit:
_test:
cmpwi cr0, r3, 0
bne .LBB_test_2 ;
.LBB_test_1: ;
or r4, r5, r5
.LBB_test_2: ;
or r3, r4, r4
blr
-Chris
llvm-svn: 19214
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In particular, instead of compiling this:
bool %test(int %A, int %B) {
%C = setlt int %A, %B
ret bool %C
}
to this:
test:
save %sp, -96, %sp
subcc %i0, %i1, %g0
bl .LBBtest_1 !
nop
ba .LBBtest_2 !
nop
.LBBtest_1: !
or %g0, 1, %i0
ba .LBBtest_3 !
nop
.LBBtest_2: !
or %g0, 0, %i0
ba .LBBtest_3 !
nop
.LBBtest_3: !
restore %g0, %g0, %g0
retl
nop
We now compile it to this:
test:
save %sp, -96, %sp
subcc %i0, %i1, %g0
or %g0, 1, %i0
bl .LBBtest_2 !
nop
.LBBtest_1: !
or %g0, %g0, %i0
.LBBtest_2: !
restore %g0, %g0, %g0
retl
nop
llvm-svn: 19213
|
| |
|
|
|
|
| |
Fix testcase CodeGen/CBackend/2004-12-28-LogicalConstantExprs.ll
llvm-svn: 19176
|
| |
|
|
| |
llvm-svn: 19024
|
| |
|
|
| |
llvm-svn: 19021
|
| |
|
|
| |
llvm-svn: 19007
|
| |
|
|
|
|
|
| |
save small amounts of time for functions that don't call llvm.returnaddress
or llvm.frameaddress (which is almost all functions).
llvm-svn: 19006
|
| |
|
|
| |
llvm-svn: 19005
|
| |
|
|
| |
llvm-svn: 19004
|
| |
|
|
| |
llvm-svn: 19003
|
| |
|
|
| |
llvm-svn: 18994
|
| |
|
|
| |
llvm-svn: 18987
|
| |
|
|
| |
llvm-svn: 18985
|
| |
|
|
|
|
| |
of custom rules.
llvm-svn: 18984
|
| |
|
|
| |
llvm-svn: 18983
|
| |
|
|
| |
llvm-svn: 18982
|
| |
|
|
| |
llvm-svn: 18974
|
| |
|
|
| |
llvm-svn: 18932
|
| |
|
|
| |
llvm-svn: 18931
|
| |
|
|
|
|
| |
to 64-bit precision, not 80 bits.
llvm-svn: 18915
|
| |
|
|
| |
llvm-svn: 18911
|
| |
|
|
|
|
|
|
|
|
|
| |
don't support long double anyway, and this gives us FP results closer to
other targets.
This also speeds up 179.art from 41.4s to 18.32s, by eliminating a problem
with extra precision that causes an FP == comparison to fail (leading to
extra loop iterations).
llvm-svn: 18895
|
| |
|
|
| |
llvm-svn: 18844
|
| |
|
|
|
|
| |
when compiled with debug information.
llvm-svn: 18835
|
| |
|
|
| |
llvm-svn: 18833
|
| |
|
|
| |
llvm-svn: 18830
|
| |
|
|
| |
llvm-svn: 18826
|
| |
|
|
| |
llvm-svn: 18824
|