Evan Cheng
|
82dcacb63d
|
Not needed.
llvm-svn: 30674
|
2006-09-29 22:05:10 +00:00 |
|
Rafael Espindola
|
1b39270c95
|
add floating point registers
implement SINT_TO_FP
llvm-svn: 30673
|
2006-09-29 21:20:16 +00:00 |
|
Chris Lattner
|
04ad43b4de
|
update comments
llvm-svn: 30663
|
2006-09-28 23:33:12 +00:00 |
|
Chris Lattner
|
b3b7cf3be6
|
wrap long lines
llvm-svn: 30662
|
2006-09-28 23:32:43 +00:00 |
|
Chris Lattner
|
8a986f39c2
|
Simplify some code, reformat break's
llvm-svn: 30660
|
2006-09-28 23:19:29 +00:00 |
|
Chris Lattner
|
c1adb2f1d3
|
Shift amounts are always 32-bits, even in 64-bit mode. This fixes
CodeGen/PowerPC/2006-09-28-shift_64.ll
llvm-svn: 30652
|
2006-09-28 20:48:45 +00:00 |
|
Chris Lattner
|
6dc95b7b26
|
add a note about a general improvement to the code generator
llvm-svn: 30642
|
2006-09-28 06:01:17 +00:00 |
|
Chris Lattner
|
0501525c0e
|
silence warnings in release build
llvm-svn: 30631
|
2006-09-27 18:29:38 +00:00 |
|
Chris Lattner
|
26213b40aa
|
Use abstract private/comment directives, to increase portability to ppc/linux
llvm-svn: 30621
|
2006-09-27 02:55:21 +00:00 |
|
Chris Lattner
|
b826d65e01
|
Various random and minor code cleanups.
llvm-svn: 30608
|
2006-09-26 03:57:53 +00:00 |
|
Chris Lattner
|
09176ab54f
|
Compile:
int x __attribute__((used));
to:
.data
.comm _x,4 ; 'x'
.no_dead_strip _x
on both x86 and ppc darwin targets.
llvm-svn: 30605
|
2006-09-26 03:39:53 +00:00 |
|
Chris Lattner
|
167aa73273
|
Add support for targets that want to do something with the llvm.used list,
because they have an aggressive linker that does dead code stripping.
llvm-svn: 30604
|
2006-09-26 03:38:18 +00:00 |
|
Chris Lattner
|
2281c3f6ca
|
more notes
llvm-svn: 30598
|
2006-09-25 17:12:14 +00:00 |
|
Andrew Lenharth
|
55851a4bfd
|
Fix jump tables to match gcc (and the ABI and whatnot)
llvm-svn: 30594
|
2006-09-24 19:46:56 +00:00 |
|
Andrew Lenharth
|
58f5a24f0c
|
Add support for other relocation bases to jump tables, as well as custom asm directives
llvm-svn: 30593
|
2006-09-24 19:45:58 +00:00 |
|
Andrew Lenharth
|
f6b4462853
|
jump table note
llvm-svn: 30591
|
2006-09-24 13:13:10 +00:00 |
|
Evan Cheng
|
02e193e2ff
|
Delete dead code; fix 80 col violations.
llvm-svn: 30583
|
2006-09-22 21:43:59 +00:00 |
|
Rafael Espindola
|
9cfd72a3d1
|
add a note
llvm-svn: 30581
|
2006-09-22 11:36:17 +00:00 |
|
Nate Begeman
|
7bcce1a7f6
|
Fold AND and ROTL more often
llvm-svn: 30577
|
2006-09-22 05:01:56 +00:00 |
|
Rafael Espindola
|
a51ec7153c
|
more condition codes
llvm-svn: 30567
|
2006-09-21 13:06:26 +00:00 |
|
Rafael Espindola
|
4de4f87be5
|
if a constant can't be an immediate, add it to the constant pool
llvm-svn: 30566
|
2006-09-21 11:29:52 +00:00 |
|
Chris Lattner
|
ba7013ca78
|
implemented
llvm-svn: 30559
|
2006-09-21 06:14:54 +00:00 |
|
Chris Lattner
|
437703d4c9
|
Fit in 80-cols
llvm-svn: 30556
|
2006-09-21 05:46:00 +00:00 |
|
Nick Lewycky
|
401794f2a7
|
Fix compile error.
llvm-svn: 30553
|
2006-09-21 02:08:31 +00:00 |
|
Anton Korobeynikov
|
59ef7e94eb
|
Adding codegeneration for StdCall & FastCall calling conventions
llvm-svn: 30549
|
2006-09-20 22:03:51 +00:00 |
|
Andrew Lenharth
|
ce3954cac0
|
Account for pseudo-ops correctly
llvm-svn: 30548
|
2006-09-20 20:08:52 +00:00 |
|
Chris Lattner
|
663748827c
|
The DarwinAsmPrinter need not check for isDarwin. createPPCAsmPrinterPass
should create the right asmprinter subclass.
llvm-svn: 30542
|
2006-09-20 17:12:19 +00:00 |
|
Chris Lattner
|
6d66264a5f
|
Wrap some darwin'isms with isDarwin checks.
llvm-svn: 30541
|
2006-09-20 17:07:15 +00:00 |
|
Andrew Lenharth
|
d12f2d614a
|
catch constants more often
llvm-svn: 30534
|
2006-09-20 15:05:49 +00:00 |
|
Andrew Lenharth
|
3be0c58274
|
clarify with test case
llvm-svn: 30531
|
2006-09-20 14:48:00 +00:00 |
|
Andrew Lenharth
|
2ccefe5b91
|
Add Note
llvm-svn: 30530
|
2006-09-20 14:40:01 +00:00 |
|
Chris Lattner
|
6b434ee662
|
item done
llvm-svn: 30518
|
2006-09-20 06:41:56 +00:00 |
|
Chris Lattner
|
f9c4e07bf7
|
add a note
llvm-svn: 30515
|
2006-09-20 06:32:10 +00:00 |
|
Chris Lattner
|
102718b1b2
|
This is already done
llvm-svn: 30512
|
2006-09-20 04:59:33 +00:00 |
|
Chris Lattner
|
4d97247875
|
Improve PPC64 equality comparisons like PPC32 comparisons.
llvm-svn: 30510
|
2006-09-20 04:33:27 +00:00 |
|
Chris Lattner
|
69390a3f80
|
Two improvements:
1. Codegen this comparison:
if (X == 0x8000)
as:
cmplwi cr0, r3, 32768
bne cr0, LBB1_2 ;cond_next
instead of:
lis r2, 0
ori r2, r2, 32768
cmpw cr0, r3, r2
bne cr0, LBB1_2 ;cond_next
2. Codegen this comparison:
if (X == 0x12345678)
as:
xoris r2, r3, 4660
cmplwi cr0, r2, 22136
bne cr0, LBB1_2 ;cond_next
instead of:
lis r2, 4660
ori r2, r2, 22136
cmpw cr0, r3, r2
bne cr0, LBB1_2 ;cond_next
llvm-svn: 30509
|
2006-09-20 04:25:47 +00:00 |
|
Chris Lattner
|
ee42b9ae24
|
Add a note that we should match rlwnm better
llvm-svn: 30508
|
2006-09-20 03:59:25 +00:00 |
|
Chris Lattner
|
3057944738
|
Legalize is no longer limited to cleverness with just constant shift amounts.
Allow it to be clever when possible and fall back to the gross code when needed.
This allows us to compile:
long long foo1(long long X, int C) {
return X << (C|32);
}
long long foo2(long long X, int C) {
return X << (C&~32);
}
to:
_foo1:
rlwinm r2, r5, 0, 27, 31
slw r3, r4, r2
li r4, 0
blr
.globl _foo2
.align 4
_foo2:
rlwinm r2, r5, 0, 27, 25
subfic r5, r2, 32
slw r3, r3, r2
srw r5, r4, r5
or r3, r3, r5
slw r4, r4, r2
blr
instead of:
_foo1:
ori r2, r5, 32
subfic r5, r2, 32
addi r6, r2, -32
srw r5, r4, r5
slw r3, r3, r2
slw r6, r4, r6
or r3, r3, r5
slw r4, r4, r2
or r3, r3, r6
blr
.globl _foo2
.align 4
_foo2:
rlwinm r2, r5, 0, 27, 25
subfic r5, r2, 32
addi r6, r2, -32
srw r5, r4, r5
slw r3, r3, r2
slw r6, r4, r6
or r3, r3, r5
slw r4, r4, r2
or r3, r3, r6
blr
llvm-svn: 30507
|
2006-09-20 03:47:40 +00:00 |
|
Rafael Espindola
|
cd52f85028
|
fix header
add comments
untabify
llvm-svn: 30486
|
2006-09-19 16:41:40 +00:00 |
|
Rafael Espindola
|
6c7627e002
|
Implement a MachineFunctionPass to fix the mul instruction
llvm-svn: 30485
|
2006-09-19 15:49:25 +00:00 |
|
Chris Lattner
|
2b076f26b7
|
item done
llvm-svn: 30483
|
2006-09-19 06:19:03 +00:00 |
|
Chris Lattner
|
92c8924309
|
Fold the PPCISD shifts when presented with 0 inputs. This occurs for code
like:
long long test(long long X, int Y) {
return 1ULL << Y;
}
long long test2(long long X, int Y) {
return -1LL << Y;
}
which we used to compile to:
_test:
li r2, 1
subfic r3, r5, 32
li r4, 0
addi r6, r5, -32
srw r3, r2, r3
slw r4, r4, r5
slw r6, r2, r6
or r3, r4, r3
slw r4, r2, r5
or r3, r3, r6
blr
_test2:
li r2, -1
subfic r3, r5, 32
addi r6, r5, -32
srw r3, r2, r3
slw r4, r2, r5
slw r2, r2, r6
or r3, r4, r3
or r3, r3, r2
blr
Now we produce:
_test:
li r2, 1
addi r3, r5, -32
subfic r4, r5, 32
slw r3, r2, r3
srw r4, r2, r4
or r3, r4, r3
slw r4, r2, r5
blr
_test2:
li r2, -1
subfic r3, r5, 32
addi r6, r5, -32
srw r3, r2, r3
slw r4, r2, r5
slw r2, r2, r6
or r3, r4, r3
or r3, r3, r2
blr
llvm-svn: 30479
|
2006-09-19 05:22:59 +00:00 |
|
Andrew Lenharth
|
6d43749a47
|
A pass to remove the worst of the replay trap offenders, and as a bonus, align basic blocks when it is free to do so
llvm-svn: 30467
|
2006-09-18 19:44:29 +00:00 |
|
Andrew Lenharth
|
5d958d3405
|
Jump tables on Alpha
llvm-svn: 30463
|
2006-09-18 18:01:03 +00:00 |
|
Chris Lattner
|
68009a61c5
|
add a note. Our 64-bit shifts are ~30% slower than gcc's
llvm-svn: 30457
|
2006-09-18 05:36:54 +00:00 |
|
Chris Lattner
|
a1349de598
|
This is closer to what we really want.
llvm-svn: 30451
|
2006-09-18 04:54:35 +00:00 |
|
Anton Korobeynikov
|
7c2118575c
|
Added some eye-candy for Subtarget type checking
Added X86 StdCall & FastCall calling conventions. Codegen will follow.
llvm-svn: 30446
|
2006-09-17 20:25:45 +00:00 |
|
Anton Korobeynikov
|
b2b7c2f8b9
|
Small fixes for supporting dll* linkage types
llvm-svn: 30441
|
2006-09-17 13:06:18 +00:00 |
|
Chris Lattner
|
563785bc55
|
add a note noticed through source inspection
llvm-svn: 30418
|
2006-09-16 23:57:51 +00:00 |
|
Chris Lattner
|
22b3d6fba9
|
add a note
llvm-svn: 30406
|
2006-09-16 03:30:19 +00:00 |
|