Chris Lattner [Mon, 16 Jun 2003 13:33:59 +0000 (13:33 +0000)]
New testcase identified by joel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6709
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 16 Jun 2003 13:16:20 +0000 (13:16 +0000)]
New testcase identified by joel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6708
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 16 Jun 2003 12:27:12 +0000 (12:27 +0000)]
Fix final linking errors
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6707
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 16 Jun 2003 12:25:11 +0000 (12:25 +0000)]
Fix link errors by adding main's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6706
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 16 Jun 2003 12:23:27 +0000 (12:23 +0000)]
Fix link problem
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6705
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 16 Jun 2003 12:21:19 +0000 (12:21 +0000)]
Fix typeo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6704
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 16 Jun 2003 12:16:52 +0000 (12:16 +0000)]
Add prototype for the new DAE pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6703
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 16 Jun 2003 12:11:33 +0000 (12:11 +0000)]
Fix bug: Linker/2003-06-02-TypeResolveProblem2.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6699
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 16 Jun 2003 12:10:45 +0000 (12:10 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6698
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 16 Jun 2003 12:09:09 +0000 (12:09 +0000)]
Fix bug: CBackend/2003-06-11-HexConstant.ll
Fix bug: CBackend/2003-06-11-LiteralStringProblem.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6697
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 16 Jun 2003 12:08:18 +0000 (12:08 +0000)]
Nodes get forwarded when they are collapsed currently.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6696
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 16 Jun 2003 12:07:39 +0000 (12:07 +0000)]
Remove bogus assertion: a node with no referrers could be collapsed if field-sensitivity was disabled
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6695
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 16 Jun 2003 12:06:41 +0000 (12:06 +0000)]
Implement forwarding from stores to loads of must-aliased pointers.
This implements: GCSE/2003-06-13-LoadStoreEliminate.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6694
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 16 Jun 2003 12:05:38 +0000 (12:05 +0000)]
New testcases for bugs and the new DAE pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6693
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 16 Jun 2003 12:03:00 +0000 (12:03 +0000)]
Fix invalid number of arguments problem
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6692
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 16 Jun 2003 11:59:34 +0000 (11:59 +0000)]
Fix testcase to work with store forwarding
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6689
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 13 Jun 2003 16:10:26 +0000 (16:10 +0000)]
Fix major bug in my last checkin. :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6688
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Thu, 12 Jun 2003 19:34:44 +0000 (19:34 +0000)]
Reverted back to hand-made HTML.
Added in updates for new Makefile variables and corrected some punctuation.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6687
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 12 Jun 2003 18:57:42 +0000 (18:57 +0000)]
Remove obsolete comments about llvm-ar
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6686
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Wed, 11 Jun 2003 20:46:40 +0000 (20:46 +0000)]
Updated the documentation to reflect changes in the Makefiles for building
projects.
Fixed some small grammatical errors.
Using Netscape Composer seems to have added stuff that makes the page look
exactly the same. Bah! Curse my laziness!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6685
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Wed, 11 Jun 2003 19:44:51 +0000 (19:44 +0000)]
Changed the LITTLE_ENDIAN and BIG_ENDIAN macros to ENDIAN_LITTLE and ENDIAN_BIG.
This will prevent them from conflicting with macros defined by the system
header files.
When autoconf comes, this will look a lot nicer.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6684
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Wed, 11 Jun 2003 14:17:21 +0000 (14:17 +0000)]
Added assert.h so that it compiles under newer versions of GCC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6683
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Wed, 11 Jun 2003 14:01:36 +0000 (14:01 +0000)]
Included assert.h so that the code compiles under newer versions of GCC.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6682
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Wed, 11 Jun 2003 13:57:48 +0000 (13:57 +0000)]
Updated to the new Makefile.common.
Modified the test rule so that it can be added to the regular test rule
(I believe the term is double dependency?).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6681
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Wed, 11 Jun 2003 13:56:55 +0000 (13:56 +0000)]
Updated to use the new Makefile.common.
Replaced the hard-coded compiler variable with the one defined by
Makefile.config.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6680
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Wed, 11 Jun 2003 13:55:44 +0000 (13:55 +0000)]
Modified Makefile.common to handle compilation of projects inside and outside
of the llvm source directory.
The main modification was to add new environment variables: one set for llvm
entities and another set for source entities current being compiled.
This should make the Makefile more flexible and easier to understand as each
environment variable only does one thing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6679
91177308-0d34-0410-b5e6-
96231b3b80d8
John Criswell [Wed, 11 Jun 2003 13:49:11 +0000 (13:49 +0000)]
Updated for the new projects Makefile.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6678
91177308-0d34-0410-b5e6-
96231b3b80d8
Guochun Shi [Tue, 10 Jun 2003 20:04:30 +0000 (20:04 +0000)]
add some comments
add a function ModuloScheduling::dumpFinalSchedule() to print out final schedule
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6677
91177308-0d34-0410-b5e6-
96231b3b80d8
Guochun Shi [Tue, 10 Jun 2003 20:03:39 +0000 (20:03 +0000)]
add an brief instruction what this pass is
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6676
91177308-0d34-0410-b5e6-
96231b3b80d8
Guochun Shi [Tue, 10 Jun 2003 20:02:16 +0000 (20:02 +0000)]
a simple introduction to this pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6675
91177308-0d34-0410-b5e6-
96231b3b80d8
Guochun Shi [Tue, 10 Jun 2003 19:09:00 +0000 (19:09 +0000)]
cleaned code
add some comments
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6674
91177308-0d34-0410-b5e6-
96231b3b80d8
Guochun Shi [Sun, 8 Jun 2003 23:16:07 +0000 (23:16 +0000)]
delete useless functions
add comment
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6673
91177308-0d34-0410-b5e6-
96231b3b80d8
Guochun Shi [Sun, 8 Jun 2003 20:40:47 +0000 (20:40 +0000)]
change DEBUG to DEBUG_PRINT
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6672
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 8 Jun 2003 15:33:25 +0000 (15:33 +0000)]
Fix bug in environment setting
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6671
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sun, 8 Jun 2003 06:43:57 +0000 (06:43 +0000)]
Add #include for older GCC's
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6670
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 7 Jun 2003 21:45:42 +0000 (21:45 +0000)]
Fix bug: LevelRaise/2003-06-07-EmptyArrayTest.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6669
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 7 Jun 2003 21:43:56 +0000 (21:43 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6668
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Sat, 7 Jun 2003 20:29:58 +0000 (20:29 +0000)]
Fix compilation problem on GCC 2.9x
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6667
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Sat, 7 Jun 2003 02:34:43 +0000 (02:34 +0000)]
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.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6662
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 6 Jun 2003 23:06:20 +0000 (23:06 +0000)]
Old versions of GCC doesn't have <ostream> :(
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6661
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 6 Jun 2003 22:13:01 +0000 (22:13 +0000)]
Fix compilation problem with some versions of G++
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6660
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 6 Jun 2003 21:09:29 +0000 (21:09 +0000)]
Fix problem with perror
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6659
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 6 Jun 2003 18:25:33 +0000 (18:25 +0000)]
Fix warnings on Sparc
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6658
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 6 Jun 2003 09:53:28 +0000 (09:53 +0000)]
Print address out as hex.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6657
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 6 Jun 2003 09:52:58 +0000 (09:52 +0000)]
Added 'r' and 'i' versions to WRCCR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6656
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 6 Jun 2003 09:52:23 +0000 (09:52 +0000)]
* 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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6655
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 6 Jun 2003 08:00:40 +0000 (08:00 +0000)]
Return 'int 0' instead of 'void' so that the test can be seen as successful.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6654
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 6 Jun 2003 07:58:29 +0000 (07:58 +0000)]
Return 'int 0' instead of void so that the test can be considered to pass.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6653
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 6 Jun 2003 07:11:16 +0000 (07:11 +0000)]
* 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
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6652
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 6 Jun 2003 07:10:24 +0000 (07:10 +0000)]
Don't output explicit initializers for globals that are zero initialized
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6651
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 6 Jun 2003 06:59:55 +0000 (06:59 +0000)]
::: 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 :::
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6650
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 6 Jun 2003 06:52:35 +0000 (06:52 +0000)]
Output function address as hex.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6649
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 6 Jun 2003 06:50:43 +0000 (06:50 +0000)]
Simplify test case: remove declaration of __main() and call to it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6648
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 6 Jun 2003 04:41:22 +0000 (04:41 +0000)]
Fixed a bunch of test cases in test/Regression/Jello which could not get the
address of a floating-point (allocated via ConstantPool) correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6647
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Fri, 6 Jun 2003 04:00:05 +0000 (04:00 +0000)]
Add statistic for # machine instrs emitted
Add GROSS HACK to get CompilationCallback to work when compiled in release mode
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6646
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 6 Jun 2003 03:35:37 +0000 (03:35 +0000)]
* 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()
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6645
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 6 Jun 2003 03:34:47 +0000 (03:34 +0000)]
The SUB*i instructions belong to a different class than their SUB*r brethren.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6644
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 6 Jun 2003 00:27:02 +0000 (00:27 +0000)]
All debug print statements are now output with the DEBUG() guard to make
output clean so that tests can automatically diff the output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6643
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 6 Jun 2003 00:26:11 +0000 (00:26 +0000)]
Put all debug print statements under the DEBUG() guard to make output clean so
that tests can automatically diff the output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6642
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Fri, 6 Jun 2003 00:00:54 +0000 (00:00 +0000)]
Removed debug print statement.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6641
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 5 Jun 2003 23:51:10 +0000 (23:51 +0000)]
Fixed confusion between register classes and register types.
Now %fcc registers are recognized correctly.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6640
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 5 Jun 2003 23:35:11 +0000 (23:35 +0000)]
Added missing directive to store the instruction name.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6639
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 5 Jun 2003 23:33:15 +0000 (23:33 +0000)]
Moved predict and annul fields to the end of each individual instruction
class, because they are currently unused.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6638
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 5 Jun 2003 23:30:27 +0000 (23:30 +0000)]
Do not preset the cc register, the instructions actually use it.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6637
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 5 Jun 2003 23:15:25 +0000 (23:15 +0000)]
* Stop ignoring cc registers, since we actually use them in branches.
* Added comment as to why we are still ignoring predict and annul bits.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6636
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Thu, 5 Jun 2003 21:12:56 +0000 (21:12 +0000)]
Minor tuning -- avoid a non-inlinable function call on every operand.
Also, reorder a couple of functions for inlining.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6635
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 5 Jun 2003 21:01:26 +0000 (21:01 +0000)]
Fix (bogus) possibly uninitialized warning
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6634
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 5 Jun 2003 20:52:06 +0000 (20:52 +0000)]
Added lazy function resolution to the JIT.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6633
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 5 Jun 2003 20:51:37 +0000 (20:51 +0000)]
* The textual output of (non-)predicted FP branches is the same.
* Stop mapping FBcc instructions to deprecated opcodes, map to FBPcc instead.
* Fixed opf in FCMPxy instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6632
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 5 Jun 2003 20:51:10 +0000 (20:51 +0000)]
Remove duplicate pass
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6631
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 5 Jun 2003 20:12:51 +0000 (20:12 +0000)]
Fix bug: InstCombine/2003-06-05-BranchInvertInfLoop.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6630
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 5 Jun 2003 20:12:32 +0000 (20:12 +0000)]
New testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6629
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 5 Jun 2003 20:11:19 +0000 (20:11 +0000)]
Test seteq AND setne
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6628
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 5 Jun 2003 19:30:30 +0000 (19:30 +0000)]
Implement generation of cmp R, C to not use an extra register
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6627
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 5 Jun 2003 18:28:55 +0000 (18:28 +0000)]
Special case simple binary operator X op C
This avoid generating a register to hold C, which in turn speeds up the
register allocator by a lot: ~9% on 164.gzip and ~17% on 256.bzip2. This
also speeds up other passes. This also speeds up execution of the program
marginally, and makes the asm much easier to read. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6626
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 5 Jun 2003 18:25:08 +0000 (18:25 +0000)]
Add instructions for (add|sub|and|or|xor)ri(8|16|32)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6625
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 5 Jun 2003 17:15:04 +0000 (17:15 +0000)]
Fix bug: Jello/2003-06-04-bzip2-bug.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6624
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 5 Jun 2003 16:57:55 +0000 (16:57 +0000)]
New testcase, the JIT currently handles this right, I just don't want to
reintroduce a bug that didn't have a testcase.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6623
91177308-0d34-0410-b5e6-
96231b3b80d8
Anand Shukla [Thu, 5 Jun 2003 06:02:46 +0000 (06:02 +0000)]
Fixed a bug so initialization code is always inserted in main
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6622
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 5 Jun 2003 05:38:30 +0000 (05:38 +0000)]
New testcase for PHI handling
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6621
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Thu, 5 Jun 2003 04:48:18 +0000 (04:48 +0000)]
Use a constant expr GEP instead of an actual instruction
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6620
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 5 Jun 2003 01:06:10 +0000 (01:06 +0000)]
All store instructions really want 'rd' in the first field.
Special cases: STFSRx and STXFSRx - they operate on predefined rd=0 or rd=1, and
expect %fsr as the parameter in assembly. They are disabled (since not used)
until an encoding, both for code generation and output, is chosen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6619
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Thu, 5 Jun 2003 00:39:45 +0000 (00:39 +0000)]
Added missing 'rs1' field to F3_rdrs1imm13, 'rd' to F3_rdrs1rs2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6618
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 4 Jun 2003 22:07:12 +0000 (22:07 +0000)]
lib/CodeGen/Mapping/MappingInfo.cpp:
Update file comment to contain a bunch of the overview mapping-info
documentation previously buried within the file.
Remove some unnecessary include/using stmts.
Rename pass to MappingInfoCollector.
Rewrite a lot of it so it doesn't use global instance variables and so
it outputs into MappingInfo objects and then dumps those out, instead of going
straight to an assembly file.
Change name of factory to getMappingInfoCollector.
Fold prologue & epilogue writers into MappingInfo methods.
lib/Target/Sparc/FInfo.cpp:
Correct file comment to reflect above change
lib/Target/Sparc/Sparc.cpp:
Change name of factory to getMappingInfoCollector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6617
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 4 Jun 2003 22:02:47 +0000 (22:02 +0000)]
Add file comment. Include <vector> and <string>. Update include guards
to reflect file's current location. Add definition of class
MappingInfo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6616
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 4 Jun 2003 21:01:12 +0000 (21:01 +0000)]
Revert brians patch to get mapping info working again
sorry dude
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6615
91177308-0d34-0410-b5e6-
96231b3b80d8
Tanya Lattner [Wed, 4 Jun 2003 20:53:46 +0000 (20:53 +0000)]
Had to comment out a line in outByte() to get it to compile because Out and tmp were
undeclared. I was not sure what Brian wanted, so I will let him fix this. But now it compiles.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6614
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 4 Jun 2003 20:08:47 +0000 (20:08 +0000)]
Make this work with counter > 127
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6613
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 4 Jun 2003 20:01:13 +0000 (20:01 +0000)]
* Instead of re-inventing the MachineConstantPool emitter that's already given
in Emitter.cpp, just convert the Sparc version of the constant pool into
what's already supported and inter-operate.
* Implemented a first pass at lazy function resolution in the JITResolver. That
required adding a SparcV9CodeEmitter pointer to simplify generating
bit-patterns of the instructions.
* SparcV9CodeEmitter now creates and destroys static TheJITResolver, which makes
sense because the SparcV9CodeEmitter is the only user of TheJITResolver, and
lives for the entire duration of the JIT (via PassManager which lives in VM).
* Changed all return values in the JITResolver to uint64_t because of the 64-bit
Sparc architecture.
* Added a new version of getting the value of a GlobalValue in the
SparcV9CodeEmitter, which now works for already-generated functions (JITted or
library functions).
* Removed little-used and unused functions, cleaning up the internal view of the
SparcV9CodeEmitter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6612
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 4 Jun 2003 19:46:36 +0000 (19:46 +0000)]
Add prerelease license to cvs
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6611
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 4 Jun 2003 19:45:25 +0000 (19:45 +0000)]
* Institute a hack for the Sparc call to mmap() to get our generated code to be
laid out closer to the VM so that calls to library functions (e.g. puts()) and
callback (e.g. JITResolver::CompilationCallback) fit into 30 bits of the call
instruction.
* Abort if architecture is not yet supported (not X86 or Sparc) because it
likely requires a different set of parameters to mmap() .
* Stop using hard-coded values for page size; use sysconf(_SC_PAGESIZE) instead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6610
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Wed, 4 Jun 2003 18:17:22 +0000 (18:17 +0000)]
Make writeNumber() void. Get ready to decouple it from .byte directive output.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6609
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Wed, 4 Jun 2003 14:24:52 +0000 (14:24 +0000)]
Modify tracing rules to use opt -trace[m] instead of llc -trace[m].
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6607
91177308-0d34-0410-b5e6-
96231b3b80d8
Sumant Kowshik [Wed, 4 Jun 2003 08:03:57 +0000 (08:03 +0000)]
Made changes suggested by Chris
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6606
91177308-0d34-0410-b5e6-
96231b3b80d8
Sumant Kowshik [Wed, 4 Jun 2003 08:00:05 +0000 (08:00 +0000)]
Made changes suggested by Chris; Renamed 'union' function to unionSetsWith
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6605
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 4 Jun 2003 05:10:11 +0000 (05:10 +0000)]
Clean up previous code.
Add new combination to turn seteq X, 0 -> not(cast X to bool)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6604
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 4 Jun 2003 05:08:31 +0000 (05:08 +0000)]
Add new setCondition member
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6603
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 4 Jun 2003 04:54:06 +0000 (04:54 +0000)]
I have finally seen the light. The code to change the opcode must live higher in
the loop, and in both cases. In the first case, it is a VReg that is a constant
so it may be actually converted to a constant. In the second case, it is already
a constant, but then if it doesn't change its type (e.g. to become a register
and have the value loaded from memory if it is too large to live in its
instruction field), we must change the opcode BEFORE the 'continue', otherwise
we miss the opportunity.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6602
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 4 Jun 2003 04:48:31 +0000 (04:48 +0000)]
Added the 4.7 instruction class and all the FMOVcc instructions in them.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6601
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 4 Jun 2003 04:47:40 +0000 (04:47 +0000)]
Modernize testcase
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6600
91177308-0d34-0410-b5e6-
96231b3b80d8