Commit Graph

16825 Commits

Author SHA1 Message Date
Chris Lattner
25dc891a3d Do not throw away bits for no reason
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19378 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-08 19:32:59 +00:00
Chris Lattner
7cf9ad3698 Silence a VS warning.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19377 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-08 19:31:31 +00:00
Chris Lattner
5188ad735c Adjust to changes in LowerCallTo interface
Minor bugfixes


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19376 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-08 19:28:19 +00:00
Chris Lattner
4e6c746899 Implement handling of most long operators through libcalls.
Fix a bug legalizing "ret (Val,Val)"


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19375 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-08 19:27:05 +00:00
Chris Lattner
cf5734dddd Adjust to changes in LowerCAllTo interfaces
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19374 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-08 19:26:18 +00:00
Chris Lattner
d4b1c9a938 Make LowerCallTo more generic and useful.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19373 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-08 19:25:39 +00:00
John Criswell
106ff12cb5 Another year, another copyright update.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19372 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-08 19:10:44 +00:00
Jeff Cohen
06deda2d9c Add a few more passes to LinkAllPasses.h
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19371 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-08 18:15:23 +00:00
Jeff Cohen
bf65268def Add more missing createXxxPass functions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19370 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-08 17:21:40 +00:00
Chris Lattner
ae0aacb833 Add support for FP->INT conversions and back.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19369 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-08 08:08:56 +00:00
Chris Lattner
1645ed0b93 Add operators for FP -> INT conversions and back.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19368 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-08 08:08:49 +00:00
Chris Lattner
8c92628d1c Wrap long line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19367 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-08 06:59:50 +00:00
Chris Lattner
5d2c6c784b Implement the 'store FPIMM, Ptr' -> 'store INTIMM, Ptr' optimization for
all targets.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19366 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-08 06:25:56 +00:00
Chris Lattner
623f70dd4c 1ULL << 64 is undefined, don't do it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19365 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-08 06:24:30 +00:00
Chris Lattner
7ab65934a0 The X86 instruction selector already handles codegen of:
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


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19364 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-08 05:45:24 +00:00
Chris Lattner
fb0c3bd531 New testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19363 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-08 05:44:07 +00:00
Misha Brukman
45cf34c14b Eliminate empty sub-list
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19362 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-08 01:11:15 +00:00
Chris Lattner
7c68ec6b70 Fix a pointer invalidation problem. This fixes Generic/badarg6.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19361 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 23:32:00 +00:00
Chris Lattner
5351e9b172 Fold conditional branches on constants away.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19360 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 22:49:57 +00:00
Chris Lattner
4287d5e355 Fix a thinko in the reassociation code, fixing Generic/badlive.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19359 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 22:44:09 +00:00
Chris Lattner
b00a6425de Add support for truncating integer casts from long.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19358 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 22:37:48 +00:00
Chris Lattner
8afc48e44a Fix a bug in load expansion legalization and ret legalization. This fixes
CodeGen/Generic/select.ll:castconst.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19357 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 22:28:47 +00:00
Chris Lattner
c7af17923e Legalize unconditional branches too
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19356 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 22:12:08 +00:00
Chris Lattner
9cd87dbccb Cleanup a bunch of tests. In particular do not allow target directives in
the .ll file or it forces the V9 backend.  This is the CodeGen/Generic dir,
so there is no use in doing that.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19355 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 22:05:31 +00:00
Chris Lattner
7cc4777a26 Implement support for long GEP indices on 32-bit archs and support for
int GEP indices on 64-bit archs.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19354 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 21:56:57 +00:00
Chris Lattner
fd8c39b773 Simplify: truncate ({zero|sign}_extend (X))
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19353 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 21:56:24 +00:00
Chris Lattner
03c0cf822e implement legalization of a bunch more operators.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19352 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 21:45:56 +00:00
Chris Lattner
c33fc820d2 Make this test a bit more interesting by making there actually be a use of the
PHI node.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19351 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 21:37:13 +00:00
Chris Lattner
fad71ebe1e Fix another bug legalizing calls!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19350 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 21:35:32 +00:00
Chris Lattner
f44fd88e9c Fix handling of dead PHI nodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19349 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 21:34:19 +00:00
Chris Lattner
ebda942efc Fix a bug legalizing calls
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19348 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 21:34:13 +00:00
Chris Lattner
3b5d631747 modernize and clean up this test.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19347 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 21:15:58 +00:00
Chris Lattner
62fd269c14 After legalizing a DAG, delete dead nodes to save space.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19346 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 21:09:37 +00:00
Chris Lattner
0e12e6e041 Implement RemoveDeadNodes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19345 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 21:09:16 +00:00
Chris Lattner
d1fc96499b Add a new SelectionDAG::RemoveDeadNodes method
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19344 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 21:08:55 +00:00
Jeff Cohen
39931a3dba Fix include. Too easy to make mistakes like this on Windows :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19343 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 19:21:49 +00:00
Chris Lattner
c045579428 Remove the open projects page from the docs directory.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19342 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 18:57:33 +00:00
Misha Brukman
9e3bdf1af4 Capitalize Bugpoint.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19341 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 17:00:44 +00:00
Jeff Cohen
bb66a9f960 Get new SelectionDAG stuff building with Visual Studio.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19340 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 15:52:36 +00:00
Chris Lattner
c18ae4cb6a Teach legalize how to handle condbranches
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19339 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 08:19:42 +00:00
Chris Lattner
186fcf6964 Add a testcase I forgot to commit earlier.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19338 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 07:56:08 +00:00
Chris Lattner
2e8bd68d13 X86 BE requires SelectionDAG
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19337 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 07:51:25 +00:00
Chris Lattner
85139f5ec3 X86 JIT requires the selection dag library.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19336 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 07:51:11 +00:00
Chris Lattner
18ad19488d Allow the selection-dag based selector to be diabled with -disable-pattern-isel.
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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19335 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 07:50:50 +00:00
Chris Lattner
8acb1ba04d Reimplementation of the X86 pattern isel. This is still missing many large
pieces, but can already do amazing things in some cases.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19334 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 07:49:41 +00:00
Chris Lattner
d844d0128a This file is now dead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19333 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 07:49:05 +00:00
Chris Lattner
95cdb36714 Add a new prototype
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19332 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 07:48:33 +00:00
Chris Lattner
1c08c714bb Initial implementation of the SelectionDAGISel class. This contains most
of the code for lowering from LLVM code to a SelectionDAG.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19331 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 07:47:53 +00:00
Chris Lattner
b75c12de67 This file is obsolete
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19330 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 07:47:23 +00:00
Chris Lattner
3e928bbd61 Initial implementation of the DAG legalization. This still has a long way
to go, but it does work for some non-trivial cases now.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19329 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-07 07:47:09 +00:00