Commit Graph

22162 Commits

Author SHA1 Message Date
Evan Cheng e9025f1f3b Another folding problem: if a node r/w chain or flag, don't fold it if it
has already been selected. The number of use check is not strong enough since
a node can be replaced with newly created target node. e.g. If the original
node has two uses, when it is selected for one of the uses it is replaced with
another. Each node now has a single use but isel still should not fold it.

llvm-svn: 25651
2006-01-26 19:13:45 +00:00
Andrew Lenharth 67e0189faa Pass plugins on to children when optimizing.
llvm-svn: 25650
2006-01-26 18:37:21 +00:00
Andrew Lenharth bb4c9c0bd7 Remember plugins should someone like bugpoint want to know them.
llvm-svn: 25649
2006-01-26 18:36:50 +00:00
Andrew Lenharth b0a3ebd766 added a couple test cases, including the new vaarg breakage
llvm-svn: 25648
2006-01-26 17:43:42 +00:00
Jeff Cohen 272c009568 Teach Visual Studio about X86 subtargets.
llvm-svn: 25647
2006-01-26 16:49:00 +00:00
Jim Laskey 6af933005c Split out Dwarf constants for use outside DwarfWriter.
llvm-svn: 25646
2006-01-26 14:45:22 +00:00
Evan Cheng 54c13da29c Added preliminary x86 subtarget support.
llvm-svn: 25645
2006-01-26 09:53:06 +00:00
Duraid Madina 0ebb0b1c5c fix stack corruption! Previously, 16-byte whole-FP-register stores were
being treated as needing only 8 bytes (though they were 16 byte aligned.)

This should fix a bunch of tests - anyone have any comments, though?

  - in Target.td , SpillSize and SpillAlignment seem dead - is this what
    Size and Alignment do now?
  - in CodeGenRegisters.h/CodeGenTarget.cpp , DeclaredSpillSize and
    DeclaredSpillAlignment seem dead.
  - there are a bunch of comments here and there that don't clearly
    distinguish between 'size' and 'spillsize' etc. hmm.

llvm-svn: 25644
2006-01-26 09:45:03 +00:00
Duraid Madina c090ac13bd some hoovering
llvm-svn: 25643
2006-01-26 09:08:31 +00:00
Chris Lattner dbc2aac1e7 Rest of subtarget support, remove references to ppc
llvm-svn: 25642
2006-01-26 07:22:22 +00:00
Chris Lattner e6842a9da6 Add trivial subtarget support
llvm-svn: 25641
2006-01-26 06:51:21 +00:00
Andrew Lenharth 0a01374299 minor renaming
llvm-svn: 25640
2006-01-26 03:24:15 +00:00
Andrew Lenharth 153f808f53 allow R28 to be used for frame calculations without entirely removing it from circulation
llvm-svn: 25639
2006-01-26 03:22:07 +00:00
Evan Cheng fcdce6d26f Work around some x86 Darwin assembler bugs
llvm-svn: 25638
2006-01-26 02:27:43 +00:00
Chris Lattner c981b8e35a add method for constraint parsing
llvm-svn: 25637
2006-01-26 02:21:59 +00:00
Chris Lattner 25a749ee25 add methods for constraint parsing
llvm-svn: 25636
2006-01-26 02:21:42 +00:00
Evan Cheng dc8365d4f3 Add a FIXME comment.
llvm-svn: 25635
2006-01-26 02:13:31 +00:00
Evan Cheng 944d1e91ea When trying to fold X86::SETCC into a Select, make a copy if it has more than
one use. This allows more CMOV instructions.

llvm-svn: 25634
2006-01-26 02:13:10 +00:00
Chris Lattner 120f31b1fd teach the cloner to handle inline asms
llvm-svn: 25633
2006-01-26 01:55:22 +00:00
Chris Lattner 06070ea4ab Allow use of isa<InlineAsm>(X) without #including InlineAsm.h
llvm-svn: 25632
2006-01-26 01:54:21 +00:00
Chris Lattner 8547e3ab16 parse and verify the constraint string.
llvm-svn: 25631
2006-01-26 00:48:33 +00:00
Evan Cheng c4c339c3d0 Clean up some code; improve efficiency; and fixed a potential bug involving
chain successors.

llvm-svn: 25630
2006-01-26 00:30:29 +00:00
Evan Cheng 97c68f0f5c Remove the uses of STATUS flag register. Rely on node property SDNPInFlag,
SDNPOutFlag, and SDNPOptInFlag instead.

llvm-svn: 25629
2006-01-26 00:29:36 +00:00
Evan Cheng c1fc8819bd Duh.
llvm-svn: 25628
2006-01-26 00:28:35 +00:00
Evan Cheng ecfaa0a1c9 Incoming (and optional) flag bugs. They may be embedded inside a inner node of
a pattern. Also, nodes which take incoming flag should not be folded if it has
more than one use.

llvm-svn: 25627
2006-01-26 00:22:25 +00:00
Chris Lattner 41eb5cd9c3 Make sure the only user of InlineAsm's are direct calls.
llvm-svn: 25626
2006-01-26 00:08:45 +00:00
Chris Lattner 3ccaf6ecb0 new tests for actual inline asm expressions
llvm-svn: 25625
2006-01-25 23:49:54 +00:00
Chris Lattner 98f013cb0f document the syntax of inline asm
llvm-svn: 25624
2006-01-25 23:47:57 +00:00
Andrew Lenharth 5c3dd5fafd oops
llvm-svn: 25623
2006-01-25 23:33:32 +00:00
Chris Lattner 4e27e8d71b update the bytecode format guide for the encoding of inline asm.
llvm-svn: 25622
2006-01-25 23:31:53 +00:00
Chris Lattner 4470691999 add bc reader/writer support for inline asm
llvm-svn: 25621
2006-01-25 23:08:15 +00:00
Andrew Lenharth a852660e74 forgot one
llvm-svn: 25620
2006-01-25 22:28:07 +00:00
Chris Lattner e0a4ee9db7 regenerate
llvm-svn: 25619
2006-01-25 22:27:16 +00:00
Chris Lattner a02d603c18 Parse inline asm objects
llvm-svn: 25618
2006-01-25 22:26:43 +00:00
Chris Lattner a2d810d935 Print InlineAsm objects
llvm-svn: 25617
2006-01-25 22:26:05 +00:00
Chris Lattner ff45f0d5b7 add another method
llvm-svn: 25616
2006-01-25 22:10:35 +00:00
Andrew Lenharth 93fd315292 make things compile again
llvm-svn: 25614
2006-01-25 21:54:38 +00:00
Reid Spencer 5edde66863 Don't break the optimized build (by incorrect placement of #endif)
llvm-svn: 25613
2006-01-25 21:49:13 +00:00
Chris Lattner 1d0b33afc3 add some useful accessors :)
llvm-svn: 25612
2006-01-25 19:58:26 +00:00
Chris Lattner 8bbcda2fda Change inline asms to be uniqued like constants, not embedded in a Module.
llvm-svn: 25610
2006-01-25 18:57:27 +00:00
Chris Lattner d07c86465d initialize an instance var, apparently I forgot to commit this long ago
llvm-svn: 25609
2006-01-25 18:57:15 +00:00
Evan Cheng 1880f8db02 No need to keep track of top and bottom nodes in a group since the vector is
already in order. Thanks Jim for pointing it out.

llvm-svn: 25608
2006-01-25 18:54:24 +00:00
Evan Cheng 030e002fb9 Set SchedulingForLatency to be the default scheduling preference for all.
llvm-svn: 25607
2006-01-25 18:52:42 +00:00
Nate Begeman e74795cd70 First part of bug 680:
Remove TLI.LowerVA* and replace it with SDNodes that are lowered the same
way as everything else.

llvm-svn: 25606
2006-01-25 18:21:52 +00:00
Jeff Cohen c3cafb8a67 Make it even more portable.
llvm-svn: 25605
2006-01-25 17:18:50 +00:00
Jeff Cohen fb20616aa6 Fix VC++ compilation error.
llvm-svn: 25604
2006-01-25 17:17:49 +00:00
Evan Cheng 1092a02619 Default scheduling preference is SchedulingForLatency.
llvm-svn: 25603
2006-01-25 09:15:54 +00:00
Evan Cheng 83eeefbbd1 X86 prefer scheduling for reduced register pressure.
llvm-svn: 25602
2006-01-25 09:15:17 +00:00
Evan Cheng ab49556cf4 Bottom up register usage reducing list scheduler.
llvm-svn: 25601
2006-01-25 09:14:32 +00:00
Evan Cheng fbc88a624a Keep track of bottom / top element of a set of flagged nodes.
llvm-svn: 25600
2006-01-25 09:13:41 +00:00