Chris Lattner
07452f836a
Avoid divide by zero errors
...
llvm-svn: 6738
2003-06-17 15:07:20 +00:00
Chris Lattner
23450e834e
Fix bug: Assembler/2003-06-17-InvokeDisassemble.llx
...
"yes, invoke instructions can have just three arguments"
llvm-svn: 6736
2003-06-17 13:31:10 +00:00
Chris Lattner
44689264b2
Fairly major change: emit fixed sized allocas in the entry block as a variable,
...
instead of a variable pointer and an alloca. All accesses to the variable then
use the address-of operator to access it. This plays better with the internal
GCC code generation phases, which bail early on functions which contain allocas.
It also makes the code a bit easier to read.
llvm-svn: 6734
2003-06-17 04:39:14 +00:00
Chris Lattner
2b01ee820e
Don't corrupt memory when removing an instruction from the program, but
...
not the worklist
llvm-svn: 6733
2003-06-17 03:57:18 +00:00
Brian Gaeke
66d086cc1e
Don't include alloca.h on FreeBSD.
...
llvm-svn: 6728
2003-06-16 23:57:13 +00:00
Chris Lattner
493103ea3b
Actually, change it to use explicit new/delete, which is more likely to be
...
optimized INTO an alloca
llvm-svn: 6727
2003-06-16 22:29:09 +00:00
Chris Lattner
9fa396e6c7
Remove usage of alloca
...
llvm-svn: 6726
2003-06-16 22:22:11 +00:00
Chris Lattner
c32989e03a
Remove two using decls
...
Remove usage of alloca
llvm-svn: 6725
2003-06-16 22:18:28 +00:00
Brian Gaeke
4681b27a92
Isolate machine-dependent use of <alloca.h> in "Support/Alloca.h",
...
so that we can easily change its use to be conditional on the result of
an autoconf test later.
llvm-svn: 6723
2003-06-16 21:54:01 +00:00
Chris Lattner
3aba55395a
Rename FInfo.cpp to FunctionInfo.cpp, eliminate FInfo.h
...
llvm-svn: 6712
2003-06-16 15:31:52 +00:00
Chris Lattner
9958a1c5b8
move contents of include/llvm/Reoptimizer/Mapping/FInfo.h into here, it is sparc internal
...
llvm-svn: 6711
2003-06-16 15:31:09 +00:00
Chris Lattner
098bfd0a32
Fix typeo
...
llvm-svn: 6704
2003-06-16 12:21:19 +00:00
Chris Lattner
343c4d4987
Fix bug: Linker/2003-06-02-TypeResolveProblem2.ll
...
llvm-svn: 6699
2003-06-16 12:11:33 +00:00
Chris Lattner
64ec8f36aa
Fix bug: ADCE/2003-06-11-InvalidCFG.ll
...
This was because we were deleting large chunks of functions without an exit block, because the post-dominance
information was not useful. This broke crafty and twolf.
llvm-svn: 6698
2003-06-16 12:10:45 +00:00
Chris Lattner
01aacfcea8
Fix bug: CBackend/2003-06-11-HexConstant.ll
...
Fix bug: CBackend/2003-06-11-LiteralStringProblem.ll
llvm-svn: 6697
2003-06-16 12:09:09 +00:00
Chris Lattner
2806ac8828
Nodes get forwarded when they are collapsed currently.
...
llvm-svn: 6696
2003-06-16 12:08:18 +00:00
Chris Lattner
e718da0d46
Remove bogus assertion: a node with no referrers could be collapsed if field-sensitivity was disabled
...
llvm-svn: 6695
2003-06-16 12:07:39 +00:00
Chris Lattner
24441a15c5
Implement forwarding from stores to loads of must-aliased pointers.
...
This implements: GCSE/2003-06-13-LoadStoreEliminate.ll
llvm-svn: 6694
2003-06-16 12:06:41 +00:00
Chris Lattner
713b9542eb
Fix invalid number of arguments problem
...
llvm-svn: 6692
2003-06-16 12:03:00 +00:00
John Criswell
4781723de6
Included assert.h so that the code compiles under newer versions of GCC.
...
llvm-svn: 6682
2003-06-11 14:01:36 +00:00
John Criswell
d3ff853628
Updated for the new projects Makefile.
...
llvm-svn: 6678
2003-06-11 13:49:11 +00:00
Guochun Shi
77b04a417a
add some comments
...
add a function ModuloScheduling::dumpFinalSchedule() to print out final schedule
llvm-svn: 6677
2003-06-10 20:04:30 +00:00
Guochun Shi
36a4257c48
add an brief instruction what this pass is
...
llvm-svn: 6676
2003-06-10 20:03:39 +00:00
Guochun Shi
385c1556a9
a simple introduction to this pass
...
llvm-svn: 6675
2003-06-10 20:02:16 +00:00
Guochun Shi
8783d79b8b
cleaned code
...
add some comments
llvm-svn: 6674
2003-06-10 19:09:00 +00:00
Guochun Shi
7868d0f43e
delete useless functions
...
add comment
llvm-svn: 6673
2003-06-08 23:16:07 +00:00
Guochun Shi
24ac61d239
change DEBUG to DEBUG_PRINT
...
llvm-svn: 6672
2003-06-08 20:40:47 +00:00
Chris Lattner
66f5f27dcb
Add #include for older GCC's
...
llvm-svn: 6670
2003-06-08 06:43:57 +00:00
Chris Lattner
326e1fb77d
Fix bug: LevelRaise/2003-06-07-EmptyArrayTest.ll
...
llvm-svn: 6669
2003-06-07 21:45:42 +00:00
Chris Lattner
26c238c746
Fix compilation problem on GCC 2.9x
...
llvm-svn: 6667
2003-06-07 20:29:58 +00:00
Misha Brukman
ba5c703619
Do not hastily change the Opcode from 'r' to 'i' type if we're not actually
...
SETTING the operand to be an immediate or have verified that one of the operands
is really a SignExtended or Unextended immediate value already, which warrants
an 'i' opcode.
llvm-svn: 6662
2003-06-07 02:34:43 +00:00
Chris Lattner
68ee069591
Fix compilation problem with some versions of G++
...
llvm-svn: 6660
2003-06-06 22:13:01 +00:00
Chris Lattner
5e34712b08
Fix problem with perror
...
llvm-svn: 6659
2003-06-06 21:09:29 +00:00
Chris Lattner
d4e4130f0a
Fix warnings on Sparc
...
llvm-svn: 6658
2003-06-06 18:25:33 +00:00
Misha Brukman
4f614afd11
Print address out as hex.
...
llvm-svn: 6657
2003-06-06 09:53:28 +00:00
Misha Brukman
2f76ce01b0
Added 'r' and 'i' versions to WRCCR.
...
llvm-svn: 6656
2003-06-06 09:52:58 +00:00
Misha Brukman
d61d0211ba
* Changed Bcc instructions to behave like BPcc instructions
...
* BPA and BPN do not take a %cc register as a parameter
* SLL/SRL/SRA{r,i}5 are there for a reason - they are ONLY 32-bit instructions
* Likewise, SLL/SRL/SRAX{r,i}6 are only 64-bit
* Added WRCCR{r,i} opcodes
llvm-svn: 6655
2003-06-06 09:52:23 +00:00
Misha Brukman
a8f6be985d
* Removed PreSelection pass because that is now done in the JIT
...
* Removed instruction scheduling as it is too slow to run in a JIT environment
* Removed other passes because they aren't necessary and can slow JIT down
llvm-svn: 6652
2003-06-06 07:11:16 +00:00
Chris Lattner
e9a9d85aee
Don't output explicit initializers for globals that are zero initialized
...
llvm-svn: 6651
2003-06-06 07:10:24 +00:00
Misha Brukman
1a3c1a6208
::: HACK ALERT ::: HACK ALERT ::: HACK ALERT ::: HACK ALERT ::: HACK ALERT :::
...
The JIT is designed to code-generate a function at-a-time. That means that any
pass can only make local changes to its function. Period.
Because the Sparc PreSelection pass claims to be a BasicBlock pass while adding
globals to the Module, it cannot be run with the other passes, because by this
time, the globals have been output already by the JIT, and the addresses of any
globals appearing AFTER this point are not recognized.
However, the PreSelection pass is a requirement for correctness in the Sparc
codegen path, so it MUST be run.
::: HACK ALERT ::: HACK ALERT ::: HACK ALERT ::: HACK ALERT ::: HACK ALERT :::
llvm-svn: 6650
2003-06-06 06:59:55 +00:00
Misha Brukman
6762302093
Output function address as hex.
...
llvm-svn: 6649
2003-06-06 06:52:35 +00:00
Misha Brukman
960a2c69b5
Fixed a bunch of test cases in test/Regression/Jello which could not get the
...
address of a floating-point (allocated via ConstantPool) correctly.
llvm-svn: 6647
2003-06-06 04:41:22 +00:00
Chris Lattner
437985e52c
Add statistic for # machine instrs emitted
...
Add GROSS HACK to get CompilationCallback to work when compiled in release mode
llvm-svn: 6646
2003-06-06 04:00:05 +00:00
Misha Brukman
4720f1af42
* If a global is not a function, just ask the MachineCodeEmitter for the addr
...
* Do not block a print statement with a DEBUG() guard if we're going to abort()
llvm-svn: 6645
2003-06-06 03:35:37 +00:00
Misha Brukman
9e8fd867b4
The SUB*i instructions belong to a different class than their SUB*r brethren.
...
llvm-svn: 6644
2003-06-06 03:34:47 +00:00
Misha Brukman
9136d8dd0d
Put all debug print statements under the DEBUG() guard to make output clean so
...
that tests can automatically diff the output.
llvm-svn: 6642
2003-06-06 00:26:11 +00:00
Misha Brukman
999c7802ab
Removed debug print statement.
...
llvm-svn: 6641
2003-06-06 00:00:54 +00:00
Misha Brukman
c3b2d93a5c
Fixed confusion between register classes and register types.
...
Now %fcc registers are recognized correctly.
llvm-svn: 6640
2003-06-05 23:51:10 +00:00
Misha Brukman
f0c930a86c
Added missing directive to store the instruction name.
...
llvm-svn: 6639
2003-06-05 23:35:11 +00:00
Misha Brukman
6026ff3361
Moved predict and annul fields to the end of each individual instruction
...
class, because they are currently unused.
llvm-svn: 6638
2003-06-05 23:33:15 +00:00