Misha Brukman
8f1222245e
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
2003-06-06 00:26:11 +00:00
Misha Brukman
cf614a32d5
Removed debug print statement.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6641 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-06 00:00:54 +00:00
Misha Brukman
6994dab12a
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
2003-06-05 23:51:10 +00:00
Misha Brukman
432fba5572
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
2003-06-05 23:35:11 +00:00
Misha Brukman
ce50542179
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
2003-06-05 23:33:15 +00:00
Misha Brukman
d4ad1d10bc
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
2003-06-05 23:30:27 +00:00
Misha Brukman
3d194ac26b
* 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
2003-06-05 23:15:25 +00:00
Vikram S. Adve
cf819454e4
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
2003-06-05 21:12:56 +00:00
Chris Lattner
9783301b9d
Fix (bogus) possibly uninitialized warning
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6634 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-05 21:01:26 +00:00
Misha Brukman
f47d9c28d9
Added lazy function resolution to the JIT.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6633 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-05 20:52:06 +00:00
Misha Brukman
e77d65a8ed
* 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
2003-06-05 20:51:37 +00:00
Chris Lattner
5b4299c26d
Remove duplicate pass
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6631 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-05 20:51:10 +00:00
Chris Lattner
9b5fd22bd9
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
2003-06-05 20:12:51 +00:00
Chris Lattner
d8c1d7619c
New testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6629 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-05 20:12:32 +00:00
Chris Lattner
619c3140e3
Test seteq AND setne
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6628 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-05 20:11:19 +00:00
Chris Lattner
333864d81b
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
2003-06-05 19:30:30 +00:00
Chris Lattner
35333e16ee
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
2003-06-05 18:28:55 +00:00
Chris Lattner
76594014f2
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
2003-06-05 18:25:08 +00:00
Chris Lattner
08d2e4e09a
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
2003-06-05 17:15:04 +00:00
Chris Lattner
340a2875b5
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
2003-06-05 16:57:55 +00:00
Anand Shukla
cd0cc61329
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
2003-06-05 06:02:46 +00:00
Chris Lattner
7990199625
New testcase for PHI handling
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6621 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-05 05:38:30 +00:00
Chris Lattner
d3646f1586
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
2003-06-05 04:48:18 +00:00
Misha Brukman
406d9abc9e
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
2003-06-05 01:06:10 +00:00
Misha Brukman
2e7e8fadf8
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
2003-06-05 00:39:45 +00:00
Brian Gaeke
aeab1e163f
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
2003-06-04 22:07:12 +00:00
Brian Gaeke
c86b8d5c46
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
2003-06-04 22:02:47 +00:00
Chris Lattner
e5d4293cba
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
2003-06-04 21:01:12 +00:00
Tanya Lattner
758578e158
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
2003-06-04 20:53:46 +00:00
Chris Lattner
fa9ee73a7d
Make this work with counter > 127
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6613 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-04 20:08:47 +00:00
Misha Brukman
a2196c1aae
* 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
2003-06-04 20:01:13 +00:00
Chris Lattner
b067d7c820
Add prerelease license to cvs
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6611 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-04 19:46:36 +00:00
Misha Brukman
3a55e8aae4
* 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
2003-06-04 19:45:25 +00:00
Brian Gaeke
e961d9614a
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
2003-06-04 18:17:22 +00:00
Vikram S. Adve
bae287671a
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
2003-06-04 14:24:52 +00:00
Sumant Kowshik
9271ade15b
Made changes suggested by Chris
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6606 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-04 08:03:57 +00:00
Sumant Kowshik
a3e5764984
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
2003-06-04 08:00:05 +00:00
Chris Lattner
40f5d70db4
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
2003-06-04 05:10:11 +00:00
Chris Lattner
9dad6d7411
Add new setCondition member
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6603 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-04 05:08:31 +00:00
Misha Brukman
d15cd2752f
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
2003-06-04 04:54:06 +00:00
Misha Brukman
d22807a43e
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
2003-06-04 04:48:31 +00:00
Chris Lattner
1812a9b92d
Modernize testcase
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6600 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-04 04:47:40 +00:00
Chris Lattner
c4d10ebcd7
Implement combination of boolean not with branch
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6599 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-04 04:46:00 +00:00
Chris Lattner
5feab1631f
Add new test for inverting branches
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@6598 91177308-0d34-0410-b5e6-96231b3b80d8
2003-06-04 04:37:46 +00:00
Misha Brukman
f5b1d3dcd4
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
2003-06-04 02:57:55 +00:00
Chris Lattner
94a5118672
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
2003-06-04 02:35:35 +00:00
Misha Brukman
9dc3ede509
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
2003-06-04 02:26:14 +00:00
Vikram S. Adve
55a85a47d4
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
2003-06-04 02:10:37 +00:00
Misha Brukman
88fe358f8a
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
2003-06-04 01:57:22 +00:00
Chris Lattner
2ab5e120d4
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
2003-06-04 01:24:40 +00:00