Commit Graph

18689 Commits

Author SHA1 Message Date
Chris Lattner 9ec975a4b5 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 06bbeb646f 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 724f7eec77 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 490769c5b6 wrap long line
llvm-svn: 21870
2005-05-11 18:57:06 +00:00
Chris Lattner 7933dcdb6e new method
llvm-svn: 21869
2005-05-11 18:56:45 +00:00
Chris Lattner 56add05671 Make sure to legalize generated ctpop nodes, convert tabs to spaces
llvm-svn: 21868
2005-05-11 18:35:21 +00:00
Andrew Lenharth 0409e1e6d5 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 a1ebbac9c0 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 446b611401 include the other bit count intrinsics
llvm-svn: 21863
2005-05-11 05:31:01 +00:00
Chris Lattner 7247324047 Add some notes for expanding clz/ctz
llvm-svn: 21862
2005-05-11 05:27:09 +00:00
Chris Lattner 05309bf58e Simplify this code, use the proper shift amount
llvm-svn: 21861
2005-05-11 05:21:31 +00:00
Duraid Madina 25163d8d60 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 3740f39883 Legalize this correctly
llvm-svn: 21859
2005-05-11 05:09:47 +00:00
Chris Lattner 669c3b17eb No really IA*64* :)
llvm-svn: 21858
2005-05-11 05:03:56 +00:00
Chris Lattner 05ad4b8369 X86 has more than just 32-bit registers
llvm-svn: 21857
2005-05-11 05:00:34 +00:00
Chris Lattner 55e9cde37c 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 93f4f5f467 Print bit count nodes correctly
llvm-svn: 21855
2005-05-11 04:50:30 +00:00
Chris Lattner d08a2de07d new testcase
llvm-svn: 21854
2005-05-11 04:22:47 +00:00
Chris Lattner 0a338a6ba9 update this to reflect the new selection daggy world
llvm-svn: 21853
2005-05-11 03:53:53 +00:00
Chris Lattner 90391c1899 don't duplicate information, particularly when it's out of date!
llvm-svn: 21852
2005-05-11 03:35:57 +00:00
Chris Lattner c18e92f3cd 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 afcc1a854b new testcase for PR562
llvm-svn: 21849
2005-05-10 22:32:29 +00:00
Misha Brukman c3967716a8 Remove vim modeline; this should go into ~/.vimrc
llvm-svn: 21848
2005-05-10 22:06:41 +00:00
Misha Brukman 689f247ef4 Remove vim modeline, this belongs in ~/.vimrc
llvm-svn: 21847
2005-05-10 22:06:14 +00:00
Misha Brukman 3f2fa8de02 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 308a715acc Why output multiple strings, let the compiler concatenate them for us for free
llvm-svn: 21845
2005-05-10 22:03:50 +00:00
Misha Brukman 8b47707b5c * Convert tabs to spaces, fix code alignment
* Remove trailing whitespace
* Wrap long lines

llvm-svn: 21844
2005-05-10 22:02:28 +00:00
Duraid Madina 332b16aaeb note HP-UX support
llvm-svn: 21841
2005-05-10 06:57:53 +00:00
Chris Lattner d8145bcd5b Convert feature of the simple isel over for the pattern isel to use.
llvm-svn: 21840
2005-05-10 03:53:18 +00:00
Chris Lattner 31c667e234 Fix Reassociate/shifttest.ll
llvm-svn: 21839
2005-05-10 03:39:25 +00:00
Jeff Cohen 915594d884 Silence some VC++ warnings
llvm-svn: 21838
2005-05-10 02:22:38 +00:00
Chris Lattner abb36674a8 new testcase
llvm-svn: 21837
2005-05-10 00:33:36 +00:00
Chris Lattner bfc796f622 If a function contains no allocas, all of the calls in it are trivially
suitable for tail calls.

llvm-svn: 21836
2005-05-09 23:51:13 +00:00
Chris Lattner 2d8b55c476 The semantics of cast X to bool are a comparison against zero, not a truncation!
llvm-svn: 21833
2005-05-09 22:17:13 +00:00
Chris Lattner 763a9e8c9b testcase I've had in my tree
llvm-svn: 21832
2005-05-09 21:21:10 +00:00
Chris Lattner 70ea07cfd2 Implement READPORT/WRITEPORT, implementing the last X86 regression tests
that were failing with the pattern selector.  Note that the support that
existed in the simple selector was clearly broken in several ways though
(which has also been fixed).

llvm-svn: 21831
2005-05-09 21:17:38 +00:00
Chris Lattner e53158e21d do not emit illegal instructions
llvm-svn: 21830
2005-05-09 21:06:04 +00:00
Chris Lattner 46b5ca4310 Fix the syntax of the i/o instructions, these are obviously unused.
llvm-svn: 21829
2005-05-09 20:49:20 +00:00
Chris Lattner 6c6a39a7b8 legalize readio/writeio into load/stores, fixing CodeGen/X86/io.llx with
the pattern isel.

llvm-svn: 21828
2005-05-09 20:37:29 +00:00
Chris Lattner ba45e6c432 legalize readio/writeio into a load/store if requested
llvm-svn: 21827
2005-05-09 20:36:57 +00:00
Chris Lattner 5385db5523 legalize READPORT, WRITEPORT, READIO, WRITEIO, at least in the basic cases
where they are directly supported by the architecture.  Wrap a bunch of
long lines :(

llvm-svn: 21826
2005-05-09 20:23:03 +00:00
Chris Lattner 20eaeae966 Add support for matching the READPORT, WRITEPORT, READIO, WRITEIO intrinsics
llvm-svn: 21825
2005-05-09 20:22:36 +00:00
Chris Lattner 67ab94510d Add support for READPORT, WRITEPORT, READIO, WRITEIO
llvm-svn: 21824
2005-05-09 20:22:17 +00:00
Chris Lattner 61171e59b2 Add READPORT, WRITEPORT, READIO, WRITEIO nodes, wrap long lines
llvm-svn: 21823
2005-05-09 20:21:27 +00:00
John Criswell b3235830b6 Tell tblgen exactly where to find the include file.
llvm-svn: 21822
2005-05-09 19:32:08 +00:00
Chris Lattner 4ccd1f603c restore some non-dead code I removed last night breaking double casts to
uint

llvm-svn: 21821
2005-05-09 18:37:02 +00:00
Chris Lattner 129c5fea44 fold and (shl X, C1), C2 -> rlwinm when possible. Many other cases are possible,
include and (srl)    and the inverses (shl and) etc.

llvm-svn: 21820
2005-05-09 17:39:48 +00:00
Chris Lattner 0d9a700b39 new testcase
llvm-svn: 21819
2005-05-09 17:09:31 +00:00
Chris Lattner 1ab1691da9 Fold shifts into subsequent SHL's. These shifts often arise due to addrses
arithmetic lowering.

llvm-svn: 21818
2005-05-09 17:06:45 +00:00
John Criswell 05990f3302 Updated the list of code generators for LLVM 1.5.
Added information on getting LLVM 1.5 from CVS (hopefully readers will
understand that the label will work *after* LLVM 1.5 is released).

llvm-svn: 21817
2005-05-09 16:49:59 +00:00