Commit Graph

12873 Commits

Author SHA1 Message Date
Chris Lattner
4abebb8301 Add a test that I have had in my tree for several months now, but apparently forgot to commit
llvm-svn: 14690
2004-07-08 15:41:08 +00:00
Chris Lattner
15c708b209 Fix this testcase
llvm-svn: 14689
2004-07-08 15:38:23 +00:00
Brian Gaeke
0601002727 Support setcc on fp values.
llvm-svn: 14687
2004-07-08 09:08:35 +00:00
Brian Gaeke
23d171a9ed Add floating-point branches and compares. Compares don't complete
until the next cycle, and there's no interlock, so they effectively
have a delay slot.

llvm-svn: 14686
2004-07-08 09:08:22 +00:00
Brian Gaeke
99a4b4ecc6 Fix bug where SwitchSection would fail to change to ".bss" successfully.
llvm-svn: 14685
2004-07-08 08:08:23 +00:00
Brian Gaeke
79c41545a7 Fix bug involving bool arguments to binary operators.
Fix typo in comment.

llvm-svn: 14684
2004-07-08 08:08:10 +00:00
Brian Gaeke
2de292734d Fix bug in copying long constants to register pairs. We were getting
the top and bottom halves backwards...how embarrassing.
Support 'cast long to long' and other similar no-op casts to long.
Support 'ret long'.

llvm-svn: 14683
2004-07-08 07:52:13 +00:00
Chris Lattner
203cdb2e64 Disable some code that isn't helping matters
llvm-svn: 14682
2004-07-08 07:25:51 +00:00
Brian Gaeke
04176a23a7 Support 'ret float'
llvm-svn: 14681
2004-07-08 07:22:27 +00:00
Chris Lattner
3e6c0078bd Really, it is not necessary to recompile all files in a profile build every
time!

llvm-svn: 14680
2004-07-08 03:42:20 +00:00
Alkis Evlogimenos
e7e19f771f Add viewCFG() and viewCFGOnly() APIs.
llvm-svn: 14679
2004-07-08 00:47:58 +00:00
Misha Brukman
f7987f7c2a There is no error message to print out, end sentence with `!'
llvm-svn: 14678
2004-07-07 21:22:05 +00:00
Reid Spencer
b28dd1ea9f Make error message consistent with the rest of LLVM by saying that bytecode
is read, not parsed.

llvm-svn: 14677
2004-07-07 21:20:28 +00:00
Reid Spencer
a97870c0ff Fix some thinkos in the script (error handling, proper argument handling).
llvm-svn: 14676
2004-07-07 21:19:01 +00:00
Reid Spencer
901e5d7a55 Bug 391 fixed.
llvm-svn: 14675
2004-07-07 21:06:28 +00:00
Reid Spencer
ff9f74082f Fix for bug 391.
Improve exeception handling around bcreader invocations.

llvm-svn: 14674
2004-07-07 21:01:38 +00:00
Misha Brukman
93b47cc963 * Use a map for caching lookups to external functions (fp div/rem)
* Tabs to spaces

llvm-svn: 14673
2004-07-07 20:07:22 +00:00
Misha Brukman
f2473e6267 * Wrap long lines (comments and code)
* Tabs to spaces

llvm-svn: 14672
2004-07-07 20:01:36 +00:00
Chris Lattner
6c5e26142c Fix regressions in these testcases:
Regression.Assembler.2002-01-24-BadSymbolTableAssert
 Regression.Assembler.2002-01-24-ValueRefineAbsType

Found through the nightly tester :)

llvm-svn: 14671
2004-07-07 18:07:46 +00:00
Misha Brukman
d5a439760c Add fmod() to the Module being compiled so that it gets a stub in the asm file
llvm-svn: 14670
2004-07-07 15:36:18 +00:00
Reid Spencer
7a18510469 Insert a reference to uint32_vbr encoding.
llvm-svn: 14669
2004-07-07 15:02:54 +00:00
Reid Spencer
c5d0621e03 An update with corrections to content as well as using a regex style
notation that Chris' suggested to make the specification more compact and
succinct. Added a section to Describe the notation, made the VBR
description its own section, and otherwise generally cleaned things up.

llvm-svn: 14668
2004-07-07 13:34:26 +00:00
Chris Lattner
ab994ac49a The bytecode reader wants to be able to read types that are not quite resolved
yet, then resolve them in it's own sweet time.  We must support this.

llvm-svn: 14666
2004-07-07 06:48:27 +00:00
Chris Lattner
dce7977318 Headers moved
llvm-svn: 14665
2004-07-07 06:35:22 +00:00
Chris Lattner
c2b3e11473 All of these now live in the DataStructure directory
llvm-svn: 14664
2004-07-07 06:32:53 +00:00
Chris Lattner
7e0d8f8084 Move all of the DSA headers into the Analysis/DataStructure subdir.
llvm-svn: 14663
2004-07-07 06:32:21 +00:00
Chris Lattner
bd3218fef2 Move DSA headers into Analysis/DataStructure to make it more obvious
what is implemented by the DataStructure library.

llvm-svn: 14662
2004-07-07 06:29:26 +00:00
Chris Lattner
fb2f56c7c8 As much as I hate to say it, the whole setNode interface for DSNodeHandles
is HOPELESSLY broken.  The problem is that the embedded getNode call can
change the offset of the node handle in unpredictable ways.

As it turns out, all of the clients of this method really want to set
both the node and the offset, thus it is more efficient (and less buggy)
to just do both of them in one method call.  This fixes some obscure bugs
handling non-forwarded node handles.

llvm-svn: 14660
2004-07-07 06:12:52 +00:00
Chris Lattner
006aea24ff When folding constant expr gep's, don't force the use of long indices.
llvm-svn: 14658
2004-07-07 04:45:13 +00:00
Chris Lattner
d1917cab43 Bug fixed
llvm-svn: 14657
2004-07-07 02:25:24 +00:00
Chris Lattner
c565fd5684 New testcase for PR396
llvm-svn: 14656
2004-07-07 02:20:02 +00:00
Alkis Evlogimenos
51dda289a7 Disable coalescing.
llvm-svn: 14655
2004-07-07 02:03:12 +00:00
Chris Lattner
b9f3b677ae Make sure people don't make functiontypes with an invalid return type
llvm-svn: 14654
2004-07-06 23:25:19 +00:00
Misha Brukman
ef78244e72 * Add support for calling vararg functions (must pass doubles in int regs too)
* Make visitSetCondInst() share condition-generating code with EmitComparison()
* There are 13 FPRs for function-passing arguments, not 8
* Do not rely on registers being sequential, use an array lookup
* In unimplemented switch cases, send an error and abort instead of silent
  fall-through
* Add doInitialization() for adding function prototypes for external math fns
* Minor changes: fix indentation, spacing, code clarity

llvm-svn: 14653
2004-07-06 22:51:53 +00:00
Misha Brukman
4543cea6ae Use the more compact bl' instead of cryptic (but equivalent) bcl 20,31'
llvm-svn: 14652
2004-07-06 22:40:34 +00:00
Brian Gaeke
b189dba59c Work around apparent Apple compiler bug which was making all mangled
names start with l0_.

llvm-svn: 14651
2004-07-06 20:29:05 +00:00
Chris Lattner
ef2c80bf39 Punctuate
llvm-svn: 14650
2004-07-06 19:58:54 +00:00
Chris Lattner
ed776e0c06 Check to make sure types are sized before calling getTypeSize on them.
llvm-svn: 14649
2004-07-06 19:28:42 +00:00
Brian Gaeke
f9c3f6178a It doesn't matter what the 2nd operand is; if the GEP has 2 operands and
the first is a zero, we should leave it alone.

llvm-svn: 14648
2004-07-06 19:24:47 +00:00
Brian Gaeke
ef192b1a19 Add helper function.
Don't touch GEPs for which DecomposeArrayRef is not going to do anything
special (e.g., < 2 indices, or 2 indices and the last one is a constant.)

llvm-svn: 14647
2004-07-06 18:15:39 +00:00
Chris Lattner
5c1abfecfe Find bugs sooner rather than later. In this case, don't allow the creation
of instructions that don't have a first-class or void type.

llvm-svn: 14646
2004-07-06 17:44:17 +00:00
Reid Spencer
e63894ba81 Change the "rotate by 90" xtics specification to just "rotate" which is
equivalent. The "by <angle>" syntax is not acceptable for all output
devices. Apparently the Sparc and x86 output devices (no color) don't
accept this, but should accept the plain "rotate".

llvm-svn: 14645
2004-07-06 17:04:09 +00:00
Alkis Evlogimenos
e0c8d140a9 Do not crash when joining two intervals of registers of different
classes: just ignore that move. Thanks to Vladimir Prus who found the
bug!

llvm-svn: 14644
2004-07-06 16:03:21 +00:00
Misha Brukman
0b6de12a84 * Add utility functions: convert SetCC => PPC opcode and invert PPC opcode
* If SetCondInst is folded into BranchInst (and it is the only user), do not
  emit code for SetCondInst
* Fix assembly opcodes in comments in visitSetCondInst()
* Fix codegen of conditional branches

llvm-svn: 14643
2004-07-06 15:32:44 +00:00
Chris Lattner
560992669f Implement rem.ll:test3
llvm-svn: 14640
2004-07-06 07:38:18 +00:00
Chris Lattner
1b45db9389 New testcase
llvm-svn: 14639
2004-07-06 07:38:00 +00:00
Chris Lattner
97ebe25e6c Fix a minor bug where we would go into infinite loops on some constants
llvm-svn: 14638
2004-07-06 07:11:42 +00:00
Chris Lattner
4d6c479f08 Implement InstCombine/sub.ll:test15: X % -Y === X % Y
Also, remove X % -1 = 0, because it's not true for unsigneds, and the
signed case is superceeded by this new handling.

llvm-svn: 14637
2004-07-06 07:01:22 +00:00
Chris Lattner
4486506985 New testcase
llvm-svn: 14636
2004-07-06 07:00:11 +00:00
Chris Lattner
d450ccbc91 Fix a bug in the unreachable block elim pass. Dropping all references on a
basic block clear()'s all of the operands lists, including phis.  This
caused removePredecessor to get confused later.  Because of this, we just
nuke (without prejudice) PHI nodes in unreachable blocks.

llvm-svn: 14635
2004-07-06 06:36:11 +00:00