oota-llvm.git
21 years agoReturn 'int 0' instead of void so that the test can be considered to pass.
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

21 years ago* Removed PreSelection pass because that is now done in the JIT
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

21 years agoDon't output explicit initializers for globals that are zero initialized
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

21 years ago::: HACK ALERT ::: HACK ALERT ::: HACK ALERT ::: HACK ALERT ::: HACK ALERT :::
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

21 years agoOutput function address as hex.
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

21 years agoSimplify test case: remove declaration of __main() and call to it.
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

21 years agoFixed a bunch of test cases in test/Regression/Jello which could not get the
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

21 years agoAdd statistic for # machine instrs emitted
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

21 years ago* If a global is not a function, just ask the MachineCodeEmitter for the addr
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

21 years agoThe SUB*i instructions belong to a different class than their SUB*r brethren.
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

21 years agoAll debug print statements are now output with the DEBUG() guard to make
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

21 years agoPut all debug print statements under the DEBUG() guard to make output clean so
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

21 years agoRemoved debug print statement.
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

21 years agoFixed confusion between register classes and register types.
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

21 years agoAdded missing directive to store the instruction name.
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

21 years agoMoved predict and annul fields to the end of each individual instruction
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

21 years agoDo not preset the cc register, the instructions actually use it.
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

21 years ago* Stop ignoring cc registers, since we actually use them in branches.
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

21 years agoMinor tuning -- avoid a non-inlinable function call on every operand.
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

21 years agoFix (bogus) possibly uninitialized warning
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

21 years agoAdded lazy function resolution to the JIT.
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

21 years ago* The textual output of (non-)predicted FP branches is the same.
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

21 years agoRemove duplicate pass
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

21 years agoFix bug: InstCombine/2003-06-05-BranchInvertInfLoop.ll
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

21 years agoNew testcase
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

21 years agoTest seteq AND setne
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

21 years agoImplement generation of cmp R, C to not use an extra register
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

21 years agoSpecial case simple binary operator X op C
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

21 years agoAdd instructions for (add|sub|and|or|xor)ri(8|16|32)
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

21 years agoFix bug: Jello/2003-06-04-bzip2-bug.ll
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

21 years agoNew testcase, the JIT currently handles this right, I just don't want to
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

21 years agoFixed a bug so initialization code is always inserted in main
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

21 years agoNew testcase for PHI handling
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

21 years agoUse a constant expr GEP instead of an actual instruction
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

21 years agoAll store instructions really want 'rd' in the first field.
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

21 years agoAdded missing 'rs1' field to F3_rdrs1imm13, 'rd' to F3_rdrs1rs2.
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

21 years agolib/CodeGen/Mapping/MappingInfo.cpp:
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

21 years agoAdd file comment. Include <vector> and <string>. Update include guards
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

21 years agoRevert brians patch to get mapping info working again
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

21 years agoHad to comment out a line in outByte() to get it to compile because Out and tmp were
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

21 years agoMake this work with counter > 127
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

21 years ago* Instead of re-inventing the MachineConstantPool emitter that's already given
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

21 years agoAdd prerelease license to cvs
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

21 years ago* Institute a hack for the Sparc call to mmap() to get our generated code to be
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

21 years agoMake writeNumber() void. Get ready to decouple it from .byte directive output.
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

21 years agoModify tracing rules to use opt -trace[m] instead of llc -trace[m].
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

21 years agoMade changes suggested by Chris
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

21 years agoMade changes suggested by Chris; Renamed 'union' function to unionSetsWith
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

21 years agoClean up previous code.
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

21 years agoAdd new setCondition member
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

21 years agoI have finally seen the light. The code to change the opcode must live higher in
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

21 years agoAdded the 4.7 instruction class and all the FMOVcc instructions in them.
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

21 years agoModernize testcase
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

21 years agoImplement combination of boolean not with branch
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

21 years agoAdd new test for inverting branches
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

21 years agoComment out opcodes currently unused in the Sparc backend.
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

21 years agoNo really, you _cannot use_ getelementptr on an unsized type: that makes
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

21 years agoAdded instruction format class 3.15 and floating-point compare instructions.
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

21 years agoUndo one of those last fixes -- it was incorrect.
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

21 years agoSparc's dlsym() requires the special operand RTLD_SELF to find a symbol in the
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

21 years agoAvoid generating a getelementptr instruction of a function
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

21 years agoPass through the emitConstantPool() call to the real emitter.
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

21 years agoMake the write*map methods more self-contained. Document some more.
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

21 years agoImproved how tracing can be used:
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

21 years agoMinor cleanups:
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

21 years agoRemove usage of typedef
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

21 years agoRemove use of enum
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

21 years agoAdd namespace comments for doxygen
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

21 years agoThere are now no uses of NonCopyableV
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

21 years agoAdd doxygen comment for namespace
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

21 years agoAdd comment for doxygen for namespace
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

21 years agoMinor cleanups:
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

21 years agoRemove noncopyable base class as it was making the doxygen docs harder to read
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

21 years agoRemove noncopyableV base classes, as they were confusing the doxygen documentation,
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

21 years agoI documented this file, in an attempt to understand it, with a view toward
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

21 years agoSpiff up options a bit
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

21 years agoUse the new -o tablegen option
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

21 years agoAdd -o support for TableGen
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

21 years agoMake tablegen use more structured command line options
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

21 years agoFix minor bug
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

21 years agoConstants are laid out in memory in PC-relative form.
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

21 years agoAdded opcode conversion for conditional move of integers.
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

21 years ago* Convert load/store opcodes from register to immediate forms.
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

21 years agoConvert load/store opcodes from register to immediate forms, if necessary.
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

21 years agoStore instructions are different from other Format 3.1/3.2 instructions in that
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

21 years agoMoved code to modify the opcode from 'reg' to 'imm' form to a more logical place.
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

21 years ago* Added section A.34: Move FP register on int reg condition (FMOVr)
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

21 years ago* Removed unused classes (rd field is always mentioned last); fixed comments.
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

21 years ago* Removed unused classes: the rd field is always mentioned as the last reg.
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

21 years agoThe rd field goes after the immediate field in format 2.1 instructions.
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

21 years agoRemoving personal name from source code.
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

21 years agoAdded the `to' keyword as in `cast <type> <data> to <type>'.
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

21 years ago* Added the `to' keyword, as in `cast <type> <data> to <type>'.
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

21 years agoStop ignoring the `cc' field, we actually use it now (e.g. conditional move)
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

21 years agoMoved FInfo.cpp to lib/Target/Sparc as it is Sparc-specific.
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

21 years agoMinor cleanups.
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

21 years agoRemove usage of noncopyable classes to clean up doxygen output.
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

21 years agoRemove NonCopyable base class to clean up doxygen output
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

21 years agoAdd #include
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

21 years agoAdded MOVR (move int reg on register condition), aka comparison with zero.
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