Commit Graph

4345 Commits

Author SHA1 Message Date
Chris Lattner 63ba1aca7c Implement the "unknown flag" which mainly consists of aligning printing code
llvm-svn: 4490
2002-11-02 00:36:03 +00:00
Chris Lattner 364e6e82fd Oops, this was not meant to be checked in
llvm-svn: 4489
2002-11-02 00:26:32 +00:00
Chris Lattner a7b0d4eb08 Stop representing scalars as explicit nodes in the graph. Now the only
nodes in the graph are memory objects, which is very nice.  This also greatly
reduces the size and memory footprint for DSGraphs.  For example, the local
DSGraph for llu went from 65 to 13 nodes with this change.  As a side bonus,
dot seems to lay out the graphs slightly better too.  :)

llvm-svn: 4488
2002-11-02 00:13:20 +00:00
Chris Lattner a19a7bccc0 * Eliminate Scalar node type (renumber other node types)
* Allow DSNodeHandle::mergeWith to work if a node handle isn't pointing to a node yet

llvm-svn: 4487
2002-11-02 00:11:12 +00:00
Nick Hildenbrandt 5c5e78482e Fixed bug in Regression/CBackend/2002-10-30-FunctionPointerAlloca.ll
llvm-svn: 4486
2002-11-01 17:37:09 +00:00
Chris Lattner 8a1854fc47 Fix comments, steens is context sensitive, we just haven't implemented
mod/ref apis yet

llvm-svn: 4485
2002-11-01 17:34:23 +00:00
Chris Lattner a75f5cf5cf Add a testcase cee should eventually pass
llvm-svn: 4484
2002-11-01 17:29:35 +00:00
Vikram S. Adve 63e0b84674 Use absolute path name for "analyze" since we are changing directories.
llvm-svn: 4483
2002-11-01 16:49:10 +00:00
Chris Lattner dcf31cec85 New iostream definitions
llvm-svn: 4482
2002-11-01 16:46:05 +00:00
Chris Lattner 36c05c8f69 Make sure to include name information if we have it
llvm-svn: 4481
2002-11-01 04:49:06 +00:00
Chris Lattner 3832014b29 Fix burg build problem.
llvm-svn: 4480
2002-11-01 03:16:45 +00:00
Chris Lattner 8c68d869e5 Add a fixme
llvm-svn: 4479
2002-10-31 23:24:00 +00:00
Brian Gaeke ac53424858 A new test case that tries to generate all the different possible shift
opcodes.

llvm-svn: 4478
2002-10-31 23:05:22 +00:00
Brian Gaeke 6e2d676829 InstSelectSimple.cpp: Include llvm/iOther.h for ShiftInst.
Add ISel::visitShiftInst() to instruction select shift instructions.
 Add a comment in visitAdd about how to do 64 bit adds.

X86InstrInfo.def: Add register-to-register move opcodes and shift opcodes.

llvm-svn: 4477
2002-10-31 23:03:59 +00:00
Chris Lattner c1d8820711 * Minor optimization: when merging nodes, merge the smaller one into the
larger one.
     * Handle the case where we are merging two nodes of different size better.

llvm-svn: 4476
2002-10-31 22:41:15 +00:00
Chris Lattner 5ef09c401b Eliminate some unneccesary #includes and forward decls
llvm-svn: 4475
2002-10-31 21:24:10 +00:00
Nick Hildenbrandt 5b55d9183d CBE doesn't alloc correctly
llvm-svn: 4474
2002-10-31 18:23:09 +00:00
Chris Lattner 8cdd50d177 Reassociate pass now works
llvm-svn: 4473
2002-10-31 17:16:18 +00:00
Chris Lattner f1257594b5 Reassociate now works
llvm-svn: 4472
2002-10-31 17:13:11 +00:00
Chris Lattner 8fdf75cde5 Fixes to the reassociate pass to make it respect dominance properties
Huge thanks go to Casey Carter for writing this fix, reassociate is now
reoperational!

llvm-svn: 4471
2002-10-31 17:12:59 +00:00
Chris Lattner 4d2997f25d Fix nasty bug in ::isNeg()
llvm-svn: 4470
2002-10-31 17:09:06 +00:00
Vikram S. Adve 8c7b93f7e3 Restore support for indirect function calls (which briefly wasn't working
after I removed annotations on MachineInstr for the CallDescriptor).

llvm-svn: 4469
2002-10-31 15:34:48 +00:00
Vikram S. Adve c0724e8d92 Do not print "NEW FILES AND DIRECTORIES" unless requested separately
because this is usually such a long list that it makes the output
useless anyway.

Disable checking exit status until we can find something more precise.
The exit status is too coarse-grain to be useful.

llvm-svn: 4468
2002-10-31 15:32:24 +00:00
Chris Lattner 5d428a0029 Remove dead code
llvm-svn: 4467
2002-10-31 06:52:26 +00:00
Misha Brukman d88a3c3c93 Refactored DSGraph.h:
* DSGraph.h   contains DSGraph
* DSNode.h    contains DSNode (soon UDSNode and MDSNode)
* DSSupport.h contains DSCallsite, DSTypeRec, and DSNodeHandler

llvm-svn: 4466
2002-10-31 06:34:18 +00:00
Chris Lattner 7d5f19886d This fixes all kinds of problems with array handling. There are still bugs to
be fixed, but we are getting much closer now.

    * Make DSNode::TypeRec a full fledged DSTypeRec type.
    * Add methods used to update and access the typerecords elements
    * Add methods to query if and to cause a node to be completely folded
    * DSGraph construction doesn't use the allocation type for anything at all,
      now nodes get their type information based on how they are used.
    * Fixed a bug with global value handling introduced in the last checkin
    * GEP support is now much better, arrays are handled correctly.  The array
      flag is now updated in type records.  There are still cases that are not
      handled yet (we do not detect pessimizations), but getting much closer.

llvm-svn: 4465
2002-10-31 05:45:02 +00:00
Chris Lattner 9040859af3 New testcases
llvm-svn: 4464
2002-10-31 05:38:19 +00:00
Chris Lattner 0a1ed70e82 Tell cvs to ignore *.dot and *.ps files in this directory
llvm-svn: 4463
2002-10-31 04:59:02 +00:00
Chris Lattner dfe8759e01 New testcase for the possible array merging scenarios
llvm-svn: 4462
2002-10-31 04:48:32 +00:00
Chris Lattner f6cfaedcff Can simplify code now with the isCommutative() method.
llvm-svn: 4461
2002-10-31 04:24:23 +00:00
Chris Lattner d1998c4aea Use new isCommutative interface, which gives us SetEQ and SetNE for free.
Thanks fly out to Casey Carter for this fix.

llvm-svn: 4460
2002-10-31 04:20:07 +00:00
Chris Lattner cab6c33811 New isAssociative/isCommutative inspection methods, graciously contributed by
Casey Carter.

llvm-svn: 4459
2002-10-31 04:14:01 +00:00
Chris Lattner b017a3ef50 Statistic class should return const reference to *this, not a reference to
the data type.

llvm-svn: 4458
2002-10-31 02:50:27 +00:00
Chris Lattner 12764c85e8 BreakCriticalEdges should update dominance frontier information as well as
other dominance stuff.  Patch contributed by Casey Carter

llvm-svn: 4457
2002-10-31 02:44:36 +00:00
Chris Lattner 869142e0d7 Add interface to update domfrontier info, thanks to Casey Carter for impl
llvm-svn: 4456
2002-10-31 02:39:48 +00:00
Chris Lattner 237e9c0710 New testcases
llvm-svn: 4455
2002-10-31 01:25:13 +00:00
Chris Lattner 61596ad266 Fix two problems:
* Load Implementation can cause unaligned memory accesses, which caused
    problems for sparc.
  * cast from pointer to pointer would zero the upper 32 bits of the pointer
    which obviously causes problems on 64 bit hosts.

llvm-svn: 4454
2002-10-30 21:47:57 +00:00
Vikram S. Adve 9a51899691 Bug fix: need to initialize new CallArgsDescriptor pointer.
llvm-svn: 4453
2002-10-30 20:38:49 +00:00
Vikram S. Adve eaad439223 Bug fix in setting an implicit ref.
llvm-svn: 4452
2002-10-30 20:38:16 +00:00
Vikram S. Adve 9f205ddfdd In getID(), don't call getValidSymbolName to mangle external names!
llvm-svn: 4451
2002-10-30 20:16:38 +00:00
Chris Lattner 6c34c0baf5 Add lots more info
llvm-svn: 4450
2002-10-30 06:04:46 +00:00
Misha Brukman 872dee1d94 Return 0 instead of 1 for correct execution. Makes automated testing happy.
llvm-svn: 4449
2002-10-30 02:18:29 +00:00
Chris Lattner 9d811ecc96 Make the testcase MORE complex
llvm-svn: 4448
2002-10-30 02:03:59 +00:00
Chris Lattner 6c614a9931 Remove fixme
llvm-svn: 4447
2002-10-30 02:02:37 +00:00
Chris Lattner ac6e97410b Add special code to make printing SSA form machine instructions nicer
llvm-svn: 4446
2002-10-30 01:55:38 +00:00
Chris Lattner 5c39f65fcd Name the first basic block
llvm-svn: 4445
2002-10-30 01:54:42 +00:00
Chris Lattner c9e1efd0f8 Make sure to set the destination register correctly
llvm-svn: 4444
2002-10-30 01:49:01 +00:00
Chris Lattner 5303b21635 Allow BuildMI that helps automate construction of SSA information
llvm-svn: 4443
2002-10-30 01:48:41 +00:00
Chris Lattner 87b84a6913 Set the destination register field based on the target specific flags
llvm-svn: 4442
2002-10-30 01:15:31 +00:00
Chris Lattner 60c59d5b4e Add flag to specify when no value is produced by an instruction
llvm-svn: 4441
2002-10-30 01:09:34 +00:00