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
Chris Lattner [Wed, 4 Jun 2003 04:46:00 +0000 (04:46 +0000)]
Implement combination of boolean not with branch
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6599
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 4 Jun 2003 04:37:46 +0000 (04:37 +0000)]
Add new test for inverting branches
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6598
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 4 Jun 2003 02:57:55 +0000 (02:57 +0000)]
Comment out opcodes currently unused in the Sparc backend.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6597
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 4 Jun 2003 02:35:35 +0000 (02:35 +0000)]
No really, you _cannot use_ getelementptr on an unsized type: that makes
no sense.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6595
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 4 Jun 2003 02:26:14 +0000 (02:26 +0000)]
Added instruction format class 3.15 and floating-point compare instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6594
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Wed, 4 Jun 2003 02:10:37 +0000 (02:10 +0000)]
Undo one of those last fixes -- it was incorrect.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6593
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Wed, 4 Jun 2003 01:57:22 +0000 (01:57 +0000)]
Sparc's dlsym() requires the special operand RTLD_SELF to find a symbol in the
currently-running process.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6592
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Wed, 4 Jun 2003 01:24:40 +0000 (01:24 +0000)]
Avoid generating a getelementptr instruction of a function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6591
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 3 Jun 2003 20:00:49 +0000 (20:00 +0000)]
Pass through the emitConstantPool() call to the real emitter.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6590
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 3 Jun 2003 19:30:15 +0000 (19:30 +0000)]
Make the write*map methods more self-contained. Document some more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6589
91177308-0d34-0410-b5e6-
96231b3b80d8
Vikram S. Adve [Tue, 3 Jun 2003 18:56:57 +0000 (18:56 +0000)]
Improved how tracing can be used:
-- added new targets %.trace-out-llc and %.trace-out-cbe
-- either TRACE=yes or TRACEM=yes is still needed and chooses how to trace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6585
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 3 Jun 2003 15:42:53 +0000 (15:42 +0000)]
Minor cleanups:
* Document the MOTy namespace correctly for doxygen
* Eliminate usage of the MachineOpCode typedef, which should eventually
be eliminated entirely.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6584
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 3 Jun 2003 15:41:58 +0000 (15:41 +0000)]
Remove usage of typedef
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6583
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 3 Jun 2003 15:41:45 +0000 (15:41 +0000)]
Remove use of enum
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6582
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 3 Jun 2003 15:31:23 +0000 (15:31 +0000)]
Add namespace comments for doxygen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6581
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 3 Jun 2003 15:30:48 +0000 (15:30 +0000)]
There are now no uses of NonCopyableV
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6580
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 3 Jun 2003 15:30:37 +0000 (15:30 +0000)]
Add doxygen comment for namespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6579
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 3 Jun 2003 15:30:13 +0000 (15:30 +0000)]
Add comment for doxygen for namespace
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6578
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 3 Jun 2003 15:30:01 +0000 (15:30 +0000)]
Minor cleanups:
* LLVM #include should use "", not <>
* Fix line wrapping
* Remove noncopyable base class to improve doxygen output
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6577
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 3 Jun 2003 15:29:12 +0000 (15:29 +0000)]
Remove noncopyable base class as it was making the doxygen docs harder to read
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6576
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 3 Jun 2003 15:28:40 +0000 (15:28 +0000)]
Remove noncopyableV base classes, as they were confusing the doxygen documentation,
making it harder to read.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6575
91177308-0d34-0410-b5e6-
96231b3b80d8
Brian Gaeke [Tue, 3 Jun 2003 07:56:05 +0000 (07:56 +0000)]
I documented this file, in an attempt to understand it, with a view toward
rewriting it. I also vacuumed out all the commented-out code and
inaccurate comments, etc.
(We need to put the mapping information in a data structure so that we can
pass it out to the JIT, instead of automagically converting it to .byte
directives.)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6574
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 3 Jun 2003 05:07:28 +0000 (05:07 +0000)]
Spiff up options a bit
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6573
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 3 Jun 2003 05:06:33 +0000 (05:06 +0000)]
Use the new -o tablegen option
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6572
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 3 Jun 2003 05:04:42 +0000 (05:04 +0000)]
Add -o support for TableGen
I figure that misha has done a lot of things on my todo list, the least I
can do is reciprocate a bit. :)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6571
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 3 Jun 2003 04:56:29 +0000 (04:56 +0000)]
Make tablegen use more structured command line options
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6570
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Tue, 3 Jun 2003 04:40:06 +0000 (04:40 +0000)]
Fix minor bug
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6569
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 3 Jun 2003 03:24:12 +0000 (03:24 +0000)]
Constants are laid out in memory in PC-relative form.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6568
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 3 Jun 2003 03:23:35 +0000 (03:23 +0000)]
Added opcode conversion for conditional move of integers.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6567
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 3 Jun 2003 03:21:58 +0000 (03:21 +0000)]
* Convert load/store opcodes from register to immediate forms.
* Stop code from wrapping to the next line.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6566
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 3 Jun 2003 03:20:57 +0000 (03:20 +0000)]
Convert load/store opcodes from register to immediate forms, if necessary.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6565
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 3 Jun 2003 03:20:14 +0000 (03:20 +0000)]
Store instructions are different from other Format 3.1/3.2 instructions in that
they prefer the destination register to be last. Thus, two new classes were made
for them that accomodate for having this layout of operands (F3_1rd, F3_2rd).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6564
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 3 Jun 2003 03:18:20 +0000 (03:18 +0000)]
Moved code to modify the opcode from 'reg' to 'imm' form to a more logical place.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6563
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 3 Jun 2003 01:16:27 +0000 (01:16 +0000)]
* Added section A.34: Move FP register on int reg condition (FMOVr)
* Labeled sections that are not currently used in the Sparc backend as not
requiring completion at this time.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6562
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 3 Jun 2003 01:13:53 +0000 (01:13 +0000)]
* Removed unused classes (rd field is always mentioned last); fixed comments.
* Added instruction classes which start building from rs1, then rs2, and rd.
* Fixed order of operands in classes 4.1 and 4.2; added 4.6 .
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6561
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 3 Jun 2003 01:11:58 +0000 (01:11 +0000)]
* Removed unused classes: the rd field is always mentioned as the last reg.
* Added new classes which start building from rs1, adding rs2, and then rd.
* Fixed order of operands in classes 3.11, 3.12, 3.16, and 3.17 .
* Fixed comments to reflect Real Life (tm).
* Removed "don't care" commented out assignments and dead classes (#if 0).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6560
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 3 Jun 2003 01:04:04 +0000 (01:04 +0000)]
The rd field goes after the immediate field in format 2.1 instructions.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6559
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 3 Jun 2003 00:59:24 +0000 (00:59 +0000)]
Removing personal name from source code.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6558
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 3 Jun 2003 00:57:41 +0000 (00:57 +0000)]
Added the `to' keyword as in `cast <type> <data> to <type>'.
Cleaned up the header of the file (comments/description/etc).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6557
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 3 Jun 2003 00:56:09 +0000 (00:56 +0000)]
* Added the `to' keyword, as in `cast <type> <data> to <type>'.
* Gave the file a maintainer.
* Cleaned up the layout somewhat.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6556
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Tue, 3 Jun 2003 00:07:17 +0000 (00:07 +0000)]
Stop ignoring the `cc' field, we actually use it now (e.g. conditional move)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6555
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 2 Jun 2003 23:27:09 +0000 (23:27 +0000)]
Moved FInfo.cpp to lib/Target/Sparc as it is Sparc-specific.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6554
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 2 Jun 2003 22:57:41 +0000 (22:57 +0000)]
Minor cleanups.
This pass should be moved to lib/Target/Sparc since it's sparc specific
It also needs a file comment.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6553
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 2 Jun 2003 22:45:07 +0000 (22:45 +0000)]
Remove usage of noncopyable classes to clean up doxygen output.
In particular these classes are the last that link the noncopyable classes
with the hash_map, vector, and list classes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6552
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 2 Jun 2003 22:07:37 +0000 (22:07 +0000)]
Remove NonCopyable base class to clean up doxygen output
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6551
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 2 Jun 2003 22:05:13 +0000 (22:05 +0000)]
Add #include
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6550
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 2 Jun 2003 21:16:54 +0000 (21:16 +0000)]
Added MOVR (move int reg on register condition), aka comparison with zero.
None of these instructions are actually used in the Sparc backend, so no changes
were required in the instruction selector.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6549
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 2 Jun 2003 20:55:14 +0000 (20:55 +0000)]
SparcInstr.def: added 'r' and 'i' versions of MOV(F)cc instructions
SparcInstrSelection.cpp:
* Fixed opcodes to return correct 'i' version since the two functions are each
only used in one place.
* Changed name of function to have an 'i' in the name to signify that they each
return an immediate form of the opcode.
* Added a warning if either of the functions is ever used in a context which
requires a register-version opcode.
SparcV9_F4.td: fixed class F4_3, added F4_4 and notes that F4_{1,2} need fixing
SparcV9.td: added the MOV(F)cc instructions
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6548
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 2 Jun 2003 20:49:09 +0000 (20:49 +0000)]
Removed a useless ofstream.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6547
91177308-0d34-0410-b5e6-
96231b3b80d8
Misha Brukman [Mon, 2 Jun 2003 19:08:37 +0000 (19:08 +0000)]
* Added casts to/from floating-point to integers.
* Changed // comments to #ifdef 0 to maintain syntax highlighting.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6546
91177308-0d34-0410-b5e6-
96231b3b80d8
Guochun Shi [Mon, 2 Jun 2003 17:48:56 +0000 (17:48 +0000)]
compiled with the new SchedGraphCommon
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6545
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 2 Jun 2003 17:42:47 +0000 (17:42 +0000)]
* Make assertion message useful
* Kill dead conditional
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6544
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 2 Jun 2003 17:31:24 +0000 (17:31 +0000)]
Second testcase identified by Joel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6543
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 2 Jun 2003 17:25:46 +0000 (17:25 +0000)]
Fix bug: Linker/2003-06-02-TypeResolveProblem.ll
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6542
91177308-0d34-0410-b5e6-
96231b3b80d8
Chris Lattner [Mon, 2 Jun 2003 17:07:42 +0000 (17:07 +0000)]
New testcase identified by Joel
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6541
91177308-0d34-0410-b5e6-
96231b3b80d8