1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-10-30 15:32:52 +01:00
Commit Graph

18713 Commits

Author SHA1 Message Date
Chris Lattner
d8766cdae2 Enable pattern isel by default
llvm-svn: 21898
2005-05-12 19:56:09 +00:00
Chris Lattner
ad48ef0a7d fix expansion of ct[lt]z nodes
llvm-svn: 21896
2005-05-12 19:27:51 +00:00
Chris Lattner
6b5bacbc0b Expand 64-bit ctlz/cttz nodes for 32-bit targets
llvm-svn: 21895
2005-05-12 19:05:01 +00:00
Chris Lattner
3677432d39 Fix uint->fp casts on PPC, allowing UnitTests/2005-05-12-Int64ToFP to
work on it.

llvm-svn: 21894
2005-05-12 18:52:34 +00:00
John Criswell
ab728eac00 Correct a detail with the alloca instruction.
Functions do not exit with invoke; they exit with unwind.

llvm-svn: 21893
2005-05-12 16:55:34 +00:00
Chris Lattner
dbcdac1ebf Allow something to be legalized multiple times. This can be used to reduce
legalization iteration

llvm-svn: 21892
2005-05-12 16:53:42 +00:00
John Criswell
abb58b3c4a Fixed some typos.
llvm-svn: 21891
2005-05-12 16:52:32 +00:00
Chris Lattner
a9a41e8856 Oops, don't do this after we figure out where to insert the call chains.
llvm-svn: 21890
2005-05-12 07:00:44 +00:00
Chris Lattner
b58308e6d4 Make sure to expand all nodes, avoiding unintentional node duplication.
llvm-svn: 21889
2005-05-12 06:54:21 +00:00
Chris Lattner
9f40cfa0a1 handle a common case generated by the uint64 -> FP code path better
llvm-svn: 21888
2005-05-12 06:27:02 +00:00
Chris Lattner
1c248e7462 add fixme
llvm-svn: 21887
2005-05-12 06:04:14 +00:00
Chris Lattner
5f2a0d17ab Fix a really horrible problem that causes the JIT to miscompile any program
that use 64-bit integers on 32-bit hosts.

llvm-svn: 21886
2005-05-12 06:01:28 +00:00
Chris Lattner
1196356365 Fix a problem where early legalization can cause token chain problems.
llvm-svn: 21885
2005-05-12 04:49:08 +00:00
Chris Lattner
6b0a45e42c These targets don't like setcc
llvm-svn: 21884
2005-05-12 02:06:00 +00:00
Chris Lattner
045b3f0110 Add a little hook
llvm-svn: 21883
2005-05-12 02:02:21 +00:00
Chris Lattner
b38ffd7fbf Make legalize a bit more efficient, and canonicalize sub X, C -> add X, -C
llvm-svn: 21882
2005-05-12 00:17:04 +00:00
Nate Begeman
71bcc67a0f Add testcase for legalizing ISD::CTTZ efficiently. On PPC, ctlz(int) is
now codegen'd as this:

        addi r2, r3, -1
        andc r2, r2, r3
        cntlzw r2, r2
        subfic r3, r2, 32
        blr

llvm-svn: 21881
2005-05-11 23:45:54 +00:00
Nate Begeman
e84f776b5d Necessary changes to codegen cttz efficiently on PowerPC
1. Teach LegalizeDAG how to better legalize CTTZ if the target doesn't have
   CTPOP, but does have CTLZ
2. Teach PPC32 how to do sub x, const -> add x, -const for valid consts
3. Teach PPC32 how to do and (xor a, -1) b -> andc b, a
4. Teach PPC32 that ISD::CTLZ -> PPC::CNTLZW

llvm-svn: 21880
2005-05-11 23:43:56 +00:00
John Criswell
55937aba69 Regression test for PR#563.
llvm-svn: 21879
2005-05-11 21:47:35 +00:00
Tanya Lattner
265167f8db Fixed issue that broke ssa.
llvm-svn: 21878
2005-05-11 21:45:03 +00:00
Chris Lattner
da3dd2f9e2 fix some GCC 4 warnings
llvm-svn: 21877
2005-05-11 21:40:40 +00:00
John Criswell
38c97a63d4 Added support for decomposing constant expressions containing shr and shl
instructions.
Review of this commit would be greatly appreciated.

llvm-svn: 21876
2005-05-11 21:16:42 +00:00
Chris Lattner
8f2d079b36 Fix lowering of ctlz, so now UnitTests/2005-05-11-Popcount-ffs-fls passes
with the CBE

llvm-svn: 21875
2005-05-11 20:24:12 +00:00
Chris Lattner
303ac68c80 Fix lowering of cttz to work with signed values
llvm-svn: 21874
2005-05-11 20:02:14 +00:00
Chris Lattner
330f44f3b6 fix and concisify intinsic lowering for ctpop. Unfortunately, this code
looks completely untested. :(

llvm-svn: 21873
2005-05-11 19:42:05 +00:00
Chris Lattner
eeeaf45bba Fix the last remaining bug preventing us from switching the X86 BE over
from the simple isel to the pattern isel.  This forces inserted libcalls
to serialize against other function calls, which was breaking
UnitTests/2005-05-12-Int64ToFP.  Hopefully this will fix issues on other
targets as well.

llvm-svn: 21872
2005-05-11 19:02:11 +00:00
Chris Lattner
296754995e Do not memoize ADJCALLSTACKDOWN nodes, provide a method to hack on them.
llvm-svn: 21871
2005-05-11 18:57:39 +00:00
Chris Lattner
74763db128 wrap long line
llvm-svn: 21870
2005-05-11 18:57:06 +00:00
Chris Lattner
328273326d new method
llvm-svn: 21869
2005-05-11 18:56:45 +00:00
Chris Lattner
d76582b540 Make sure to legalize generated ctpop nodes, convert tabs to spaces
llvm-svn: 21868
2005-05-11 18:35:21 +00:00
Andrew Lenharth
b908893bab Legalize for CTLZ generates a ctpop, but this ctpop is not expanded.
This is bad.  It is generated if you are ctlz a type that is not
legal for the arch (aka ctlz of bytes on alpha legalize fine).

llvm-svn: 21867
2005-05-11 17:23:41 +00:00
Duraid Madina
8ad9786fcd expand count-leading/trailing-zeros; the test 2005-05-11-Popcount-ffs-fls.c
should now pass (the "LLVM" and "REF" results should be identical)

llvm-svn: 21866
2005-05-11 08:45:08 +00:00
Chris Lattner
c1273fc0b9 include the other bit count intrinsics
llvm-svn: 21863
2005-05-11 05:31:01 +00:00
Chris Lattner
b452b5aa42 Add some notes for expanding clz/ctz
llvm-svn: 21862
2005-05-11 05:27:09 +00:00
Chris Lattner
4f05136f61 Simplify this code, use the proper shift amount
llvm-svn: 21861
2005-05-11 05:21:31 +00:00
Duraid Madina
b9062e56cf add the popcount instruction and support this in the isel
the primary user of this will probably end up being find-first-set-bit/find-
last-set-bit, which i'll get around to...

llvm-svn: 21860
2005-05-11 05:16:09 +00:00
Chris Lattner
3edc8ecb53 Legalize this correctly
llvm-svn: 21859
2005-05-11 05:09:47 +00:00
Chris Lattner
d5d2886ee7 No really IA*64* :)
llvm-svn: 21858
2005-05-11 05:03:56 +00:00
Chris Lattner
e358ac532b X86 has more than just 32-bit registers
llvm-svn: 21857
2005-05-11 05:00:34 +00:00
Chris Lattner
457996c4a6 implement expansion of ctpop nodes, implementing CodeGen/Generic/llvm-ct-intrinsics.ll
llvm-svn: 21856
2005-05-11 04:51:16 +00:00
Chris Lattner
ce84b90a3d Print bit count nodes correctly
llvm-svn: 21855
2005-05-11 04:50:30 +00:00
Chris Lattner
4e9ebbc98d new testcase
llvm-svn: 21854
2005-05-11 04:22:47 +00:00
Chris Lattner
76a4a19269 update this to reflect the new selection daggy world
llvm-svn: 21853
2005-05-11 03:53:53 +00:00
Chris Lattner
2fc5553907 don't duplicate information, particularly when it's out of date!
llvm-svn: 21852
2005-05-11 03:35:57 +00:00
Chris Lattner
593c0e8957 Do not use "" as a sentinal for a missing argument! This fixes PR560.
llvm-svn: 21850
2005-05-10 23:20:17 +00:00
Chris Lattner
877248c8a3 new testcase for PR562
llvm-svn: 21849
2005-05-10 22:32:29 +00:00
Misha Brukman
c09e873482 Remove vim modeline; this should go into ~/.vimrc
llvm-svn: 21848
2005-05-10 22:06:41 +00:00
Misha Brukman
2407f3b84f Remove vim modeline, this belongs in ~/.vimrc
llvm-svn: 21847
2005-05-10 22:06:14 +00:00
Misha Brukman
ba8e260dce Consistently surround `cl::' code structures with <b> and <tt> to make them
stand out as code

llvm-svn: 21846
2005-05-10 22:05:27 +00:00
Misha Brukman
4fda633c59 Why output multiple strings, let the compiler concatenate them for us for free
llvm-svn: 21845
2005-05-10 22:03:50 +00:00