oota-llvm.git
21 years agoAdd code to support stack spill/temp offsets that don't fit in the
Vikram S. Adve [Tue, 29 Jul 2003 19:53:21 +0000 (19:53 +0000)]
Add code to support stack spill/temp offsets that don't fit in the
immed. field.  Moved insertCallerSavingCode() to PhyRegAlloc: it is
now machine independent.  Remove all uses of PhyRegAlloc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7391 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAll constant-evaluation code now unified into
Vikram S. Adve [Tue, 29 Jul 2003 19:50:12 +0000 (19:50 +0000)]
All constant-evaluation code now unified into
TargetInstrInfo::ConvertConstantToIntType().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7390 91177308-0d34-0410-b5e6-96231b3b80d8

21 years ago1. Bug fix: Don't use branch operand reg. as temp. reg. when
Vikram S. Adve [Tue, 29 Jul 2003 19:49:21 +0000 (19:49 +0000)]
1. Bug fix:  Don't use branch operand reg. as temp. reg. when
   spilling values used by an instruction in the delay slot of the branch
   (which will eventually be moved before the branch).
2. Bug fix:  Delete the delay slot instr, not the branch instr, when
   moving delay slot instr. out!!!!
3. Move code to insert caller-saves moved here from SparcRegInfo:
   it is now machine-independent.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7389 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoDon't require a BB to look-up live variables, unless they may need to
Vikram S. Adve [Tue, 29 Jul 2003 19:42:32 +0000 (19:42 +0000)]
Don't require a BB to look-up live variables, unless they may need to
be recomputed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7388 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMoved insertCallerSavingCode() to PhyRegAlloc and
Vikram S. Adve [Tue, 29 Jul 2003 19:41:23 +0000 (19:41 +0000)]
Moved insertCallerSavingCode() to PhyRegAlloc and
moved isRegVolatile and modifiedByCall here: they are all
machine independent.  Remove all uses of PhyRegAlloc.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7387 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd const version of getLiveRangeForValue().
Vikram S. Adve [Tue, 29 Jul 2003 19:38:22 +0000 (19:38 +0000)]
Add const version of getLiveRangeForValue().

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7386 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoCode to insert caller-saves moved here from SparcRegInfo: it is now
Vikram S. Adve [Tue, 29 Jul 2003 19:37:41 +0000 (19:37 +0000)]
Code to insert caller-saves moved here from SparcRegInfo: it is now
machine-independent.
Fix problem with using branch operand reg. as temp. reg. when
spilling values used by an instruction in the delay slot of the branch
(which will eventually be moved before the branch).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7385 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoDon't require a BB to look-up live variables, unless they may need to
Vikram S. Adve [Tue, 29 Jul 2003 19:32:04 +0000 (19:32 +0000)]
Don't require a BB to look-up live variables, unless they may need to
be recomputed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7384 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoEnable JIT when the platform supports it.
John Criswell [Tue, 29 Jul 2003 19:11:58 +0000 (19:11 +0000)]
Enable JIT when the platform supports it.
Select /localhome/$USER when it exists.
Fix the checks for bidirectional and forward iterators so that they work with
version of GCC prior to 3.x.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7383 91177308-0d34-0410-b5e6-96231b3b80d8

21 years ago* Correctly emit a far call if the target address does not fit into 30 bits
Misha Brukman [Tue, 29 Jul 2003 19:00:58 +0000 (19:00 +0000)]
* Correctly emit a far call if the target address does not fit into 30 bits
  instead of assert()ing
* Fixed a nasty bug where '07' was used instead of register 'o7'

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7382 91177308-0d34-0410-b5e6-96231b3b80d8

21 years ago* Stop hard-coding a value for beginning of emitted code on Sparc since we can
Misha Brukman [Tue, 29 Jul 2003 16:57:16 +0000 (16:57 +0000)]
* Stop hard-coding a value for beginning of emitted code on Sparc since we can
  now handle far calls (i.e., beyond the 30-bit limit in call instructions).
* As a side-effect, this allows us to unify and clean up the mmap() call and
  code around it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7381 91177308-0d34-0410-b5e6-96231b3b80d8

21 years ago* Disambiguate symbols before we start splitting module by functions
Misha Brukman [Tue, 29 Jul 2003 16:02:28 +0000 (16:02 +0000)]
* Disambiguate symbols before we start splitting module by functions
* Moved DisambiguateGlobalSymbols() out of the ReduceMisCodegenFunctions class
* Added an assert to have a cleaner exit if `main' is not found in the module

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7380 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRegression test for incorrect character emitted to char array.
Vikram S. Adve [Tue, 29 Jul 2003 14:02:40 +0000 (14:02 +0000)]
Regression test for incorrect character emitted to char array.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7379 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoFix copy and paste-o
Chris Lattner [Tue, 29 Jul 2003 05:15:44 +0000 (05:15 +0000)]
Fix copy and paste-o

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7378 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMove "register flags" definition the type of registers to be fully fledged
Chris Lattner [Tue, 29 Jul 2003 05:14:16 +0000 (05:14 +0000)]
Move "register flags" definition the type of registers to be fully fledged
value types

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7377 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMove value type enums to CodeGen/ValueTypes.h
Chris Lattner [Tue, 29 Jul 2003 05:13:34 +0000 (05:13 +0000)]
Move value type enums to CodeGen/ValueTypes.h

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7376 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoDefine target value types in a form usable by target-independent code
Chris Lattner [Tue, 29 Jul 2003 05:13:09 +0000 (05:13 +0000)]
Define target value types in a form usable by target-independent code

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7375 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMade many paragraphs fit into 80 characters per line to avoid wrapping in an
Misha Brukman [Mon, 28 Jul 2003 21:57:18 +0000 (21:57 +0000)]
Made many paragraphs fit into 80 characters per line to avoid wrapping in an
editor window. Re-worded confusing description about interdependence of modules.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7374 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd support for Alpha intrinsics, contributed by Rahul Joshi
Chris Lattner [Mon, 28 Jul 2003 21:20:57 +0000 (21:20 +0000)]
Add support for Alpha intrinsics, contributed by Rahul Joshi

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7373 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd alpha intrinsics, contributed by Rahul Joshi
Chris Lattner [Mon, 28 Jul 2003 21:18:21 +0000 (21:18 +0000)]
Add alpha intrinsics, contributed by Rahul Joshi

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7372 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoImplemented cleanups as suggested by Chris:
Misha Brukman [Mon, 28 Jul 2003 21:07:39 +0000 (21:07 +0000)]
Implemented cleanups as suggested by Chris:
* Use Module::getNamedFunction() to delete "main" instead of using a loop
* Compare function pointers instead of function names to determine equivalence
* Simplified creation of a 2-element vector containing zeroes
* Manually performed LICM on code
* Added an abort() in case a function we're considering occurs in something that
  is not an instruction
* Use DEBUG() around code sections instead of just in a statement in a loop,
  because GCC's DCE may not be good enough to completely remove it in a release
  build
* Print out a command that can be directly copied-and-pasted to re-execute
* Instead of just checking if a symbol begins with a dot and fixing it
  accordingly, use Mangler and fix all the problems (invalid chars in C symbol
  names) entirely
* The new `main' function has external linkage

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7371 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdded comment to function isExecutingJIT()
Misha Brukman [Mon, 28 Jul 2003 20:59:16 +0000 (20:59 +0000)]
Added comment to function isExecutingJIT()

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7370 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdded two tasks:
John Criswell [Mon, 28 Jul 2003 19:26:39 +0000 (19:26 +0000)]
Added two tasks:
o Check for GCC version in configure script.
o Rewrite this file without Netscape Composer.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7369 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd rationale for the MAP_ANONYMOUS vs. MAP_ANON flags.
Misha Brukman [Mon, 28 Jul 2003 19:26:19 +0000 (19:26 +0000)]
Add rationale for the MAP_ANONYMOUS vs. MAP_ANON flags.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7368 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdded comma after `i.e.'
Misha Brukman [Mon, 28 Jul 2003 19:21:20 +0000 (19:21 +0000)]
Added comma after `i.e.'

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7367 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThe RTLD_GLOBAL flag allows symbols to be globally accessible, which makes
Misha Brukman [Mon, 28 Jul 2003 19:19:58 +0000 (19:19 +0000)]
The RTLD_GLOBAL flag allows symbols to be globally accessible, which makes
resolution of symbols in the .so possible (currently assists debugging with
bugpoint).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7366 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoLined things up in a more aesthetically pleasing way.
Misha Brukman [Mon, 28 Jul 2003 19:17:53 +0000 (19:17 +0000)]
Lined things up in a more aesthetically pleasing way.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7365 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoBugDriver.h:
Misha Brukman [Mon, 28 Jul 2003 19:16:14 +0000 (19:16 +0000)]
BugDriver.h:
* Added method to query if BugDriver is executing the JIT currently.
  This provides the ability in adding code that is conditionally executed in
  codegen debugging phase.

CodeGeneratorBug.cpp:
* Delete test functions from the Safe module
* Code conditionally added when debugging the JIT:
  use the lazy resolver function added to Emitter.cpp to get function pointer
  by name. When compiled into an .so, this is the only way to get a pointer to
  an external function
* Added a symbol disambiguator which will keep symbols uniquely named across
  modules
* Delete generated files by default
* The function `main' *must* stay in the .bc file for the JIT, but that prevents
  debugging it alone. This patch makes the old `main' become `old_main' and adds
  a new function named `main' which just calls the original with the same
  parameters, thereby keeping functionality the same.

ExecutionDriver.cpp:
* Returned to getting unique filenames
* Simplified code choosing between using and not using shared library option

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7364 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd ability for external C code to get pointers to functions given their name.
Misha Brukman [Mon, 28 Jul 2003 19:09:06 +0000 (19:09 +0000)]
Add ability for external C code to get pointers to functions given their name.
This us used by bugpoint -- when code is compiled to a shared object to be
JITted, it must use the JIT's lazy resolution method to find function addresses,
because some functions will not be available at .so load time, as they are in
the bytecode file.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7363 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoClean up code dealing with RTLD_SELF differences on Sparc and X86.
Misha Brukman [Mon, 28 Jul 2003 19:07:30 +0000 (19:07 +0000)]
Clean up code dealing with RTLD_SELF differences on Sparc and X86.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7362 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoFix reference to architecture.
Misha Brukman [Mon, 28 Jul 2003 19:06:50 +0000 (19:06 +0000)]
Fix reference to architecture.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7361 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd in support to load shared objects (-load is provided by Support library).
Misha Brukman [Mon, 28 Jul 2003 19:06:19 +0000 (19:06 +0000)]
Add in support to load shared objects (-load is provided by Support library).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7360 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRemoved extra parenthesis and fixed spelling.
Misha Brukman [Mon, 28 Jul 2003 16:53:28 +0000 (16:53 +0000)]
Removed extra parenthesis and fixed spelling.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7359 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoNeed to include <string> to fix compile error on Sun
Tanya Lattner [Mon, 28 Jul 2003 16:42:33 +0000 (16:42 +0000)]
Need to include <string> to fix compile error on Sun

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7358 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoSpecify the value type for the register, not just the size.
Chris Lattner [Mon, 28 Jul 2003 04:25:36 +0000 (04:25 +0000)]
Specify the value type for the register, not just the size.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7357 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoInstead of specifying the SIZE of the register, go so far as to specify
Chris Lattner [Mon, 28 Jul 2003 04:24:59 +0000 (04:24 +0000)]
Instead of specifying the SIZE of the register, go so far as to specify
what value type it is.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7356 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd support for Set statements without {}'s. Now we can just say
Chris Lattner [Mon, 28 Jul 2003 03:49:40 +0000 (03:49 +0000)]
Add support for Set statements without {}'s.  Now we can just say
set Foo = bar in
  def blah: blahclass {}

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7355 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAllow initializing variable initializers with variables
Chris Lattner [Mon, 28 Jul 2003 03:39:57 +0000 (03:39 +0000)]
Allow initializing variable initializers with variables

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7354 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoSomehow "simplest" test became a hello world test. Rectify this.
Chris Lattner [Sun, 27 Jul 2003 00:28:10 +0000 (00:28 +0000)]
Somehow "simplest" test became a hello world test.  Rectify this.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7353 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRename function to be more consistent with filename
Chris Lattner [Sat, 26 Jul 2003 23:49:58 +0000 (23:49 +0000)]
Rename function to be more consistent with filename

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7352 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoCode generation phases are not allowed to modify the LLVM representation.
Chris Lattner [Sat, 26 Jul 2003 23:30:37 +0000 (23:30 +0000)]
Code generation phases are not allowed to modify the LLVM representation.
Because of this, we'll make the MBB->BB mapping const as it should be

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7351 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMaking this code const-correct would be a pain, so I'll hack it.
Chris Lattner [Sat, 26 Jul 2003 23:29:51 +0000 (23:29 +0000)]
Making this code const-correct would be a pain, so I'll hack it.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7350 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoConst correctness fixes
Chris Lattner [Sat, 26 Jul 2003 23:24:56 +0000 (23:24 +0000)]
Const correctness fixes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7349 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoBe const correct
Chris Lattner [Sat, 26 Jul 2003 23:23:41 +0000 (23:23 +0000)]
Be const correct

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7348 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoHrm, another necesary one :(
Chris Lattner [Sat, 26 Jul 2003 23:22:19 +0000 (23:22 +0000)]
Hrm, another necesary one :(

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7347 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoWhoops, this one was needed
Chris Lattner [Sat, 26 Jul 2003 23:18:11 +0000 (23:18 +0000)]
Whoops, this one was needed

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7346 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoWe don't modify the LLVM rep, remain const correct
Chris Lattner [Sat, 26 Jul 2003 23:06:00 +0000 (23:06 +0000)]
We don't modify the LLVM rep, remain const correct

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7345 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoIf the pass changes _anything_ it must return true
Chris Lattner [Sat, 26 Jul 2003 23:05:37 +0000 (23:05 +0000)]
If the pass changes _anything_ it must return true

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7344 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThis code doesn't modify the LLVM structure, keep stuff const
Chris Lattner [Sat, 26 Jul 2003 23:04:00 +0000 (23:04 +0000)]
This code doesn't modify the LLVM structure, keep stuff const

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7343 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRemove #include
Chris Lattner [Sat, 26 Jul 2003 23:01:04 +0000 (23:01 +0000)]
Remove #include

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7342 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRemove extraneous #includes
Chris Lattner [Sat, 26 Jul 2003 23:00:29 +0000 (23:00 +0000)]
Remove extraneous #includes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7341 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoFix another minor bug
Chris Lattner [Sat, 26 Jul 2003 23:00:05 +0000 (23:00 +0000)]
Fix another minor bug

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7340 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRemove #includes
Chris Lattner [Sat, 26 Jul 2003 22:56:46 +0000 (22:56 +0000)]
Remove #includes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7339 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoSimplify some makefile magic, no functional changes
Chris Lattner [Fri, 25 Jul 2003 22:26:17 +0000 (22:26 +0000)]
Simplify some makefile magic, no functional changes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7336 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd fixmes
Chris Lattner [Fri, 25 Jul 2003 21:13:16 +0000 (21:13 +0000)]
Add fixmes

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7335 91177308-0d34-0410-b5e6-96231b3b80d8

21 years ago(1) Major fix to the way unused regs. are marked and found for the FP
Vikram S. Adve [Fri, 25 Jul 2003 21:12:15 +0000 (21:12 +0000)]
(1) Major fix to the way unused regs. are marked and found for the FP
    Single and FP double reg types (which share the same reg class).
    Now all methods marking/finding unused regs consider the regType
    within the reg class, and SparcFloatRegClass specializes this code.
(2) Remove machine-specific regalloc. methods that are no longer needed.
    In particular, arguments and return value from a call do not need
    machine-specific code for allocation.
(3) Rename TargetRegInfo::getRegType variants to avoid unintentional
    overloading when an include file is omitted.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7334 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThis test has been automatized
Chris Lattner [Fri, 25 Jul 2003 21:09:42 +0000 (21:09 +0000)]
This test has been automatized

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7333 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoUpdate to use more modern graph checker
Chris Lattner [Fri, 25 Jul 2003 21:09:20 +0000 (21:09 +0000)]
Update to use more modern graph checker

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7332 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoNew testcase, an automatized version of Vikrams ggcollapse.c file
Chris Lattner [Fri, 25 Jul 2003 21:09:11 +0000 (21:09 +0000)]
New testcase, an automatized version of Vikrams ggcollapse.c file

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7331 91177308-0d34-0410-b5e6-96231b3b80d8

21 years ago1. Fix a case that was marking the invalid reg. num. (-1) as used,
Vikram S. Adve [Fri, 25 Jul 2003 21:08:58 +0000 (21:08 +0000)]
1. Fix a case that was marking the invalid reg. num. (-1) as used,
   causing a nasty array bound error later.
2. Fix silly typo causing logical shift of unsigned long to use
   SRL instead of SRLX.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7330 91177308-0d34-0410-b5e6-96231b3b80d8

21 years ago(1) Change the way unused regs. are marked and found to consider regType
Vikram S. Adve [Fri, 25 Jul 2003 21:06:09 +0000 (21:06 +0000)]
(1) Change the way unused regs. are marked and found to consider regType
    info (since multiple reg types may share the same reg class).
(2) Remove machine-specific regalloc. methods that are no longer needed.
    In particular, arguments and return value from a call do not need
    machine-specific code for allocation.
(3) Rename TargetRegInfo::getRegType variants to avoid unintentional
    overloading when an include file is omitted.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7329 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoChange the way unused regs. are marked and found to consider regType
Vikram S. Adve [Fri, 25 Jul 2003 21:01:43 +0000 (21:01 +0000)]
Change the way unused regs. are marked and found to consider regType
info (since multiple reg types may share the same reg class).
Remove machine-specific regalloc. methods that are no longer needed.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7328 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRemove unused field. Change the way unused regs. are marked and
Vikram S. Adve [Fri, 25 Jul 2003 21:00:13 +0000 (21:00 +0000)]
Remove unused field.  Change the way unused regs. are marked and
found to consider regType info (since multiple reg types may share
the same reg class, e.g., single and double on Sparc).

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7327 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd an assertion.
Vikram S. Adve [Fri, 25 Jul 2003 20:58:57 +0000 (20:58 +0000)]
Add an assertion.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7326 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRemove testcase which has been automatized
Chris Lattner [Fri, 25 Jul 2003 20:55:08 +0000 (20:55 +0000)]
Remove testcase which has been automatized

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7325 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoCheckin of Vikram's ggfuncptr.c test adapted for automatic checking
Chris Lattner [Fri, 25 Jul 2003 20:53:58 +0000 (20:53 +0000)]
Checkin of Vikram's ggfuncptr.c test adapted for automatic checking

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7324 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoDont' try to parse the colon
Chris Lattner [Fri, 25 Jul 2003 20:49:29 +0000 (20:49 +0000)]
Dont' try to parse the colon

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7323 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd a more general check-flags which can be used to ensure arbitrary flags are set
Chris Lattner [Fri, 25 Jul 2003 20:45:40 +0000 (20:45 +0000)]
Add a more general check-flags which can be used to ensure arbitrary flags are set

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7322 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoInclude llvm/Support/Mangler.h first. Don't include <iostream>, <set>,
Brian Gaeke [Fri, 25 Jul 2003 20:21:20 +0000 (20:21 +0000)]
Include llvm/Support/Mangler.h first. Don't include <iostream>, <set>,
<string>, or llvm/Value.h.  Move up the inclusion of llvm/Support/Mangler.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7321 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoDon't include llvm/SlotCalculator.h, or <set>.
Brian Gaeke [Fri, 25 Jul 2003 20:21:06 +0000 (20:21 +0000)]
Don't include llvm/SlotCalculator.h, or <set>.
Move up the inclusion of llvm/Support/Mangler.h.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7320 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoForward-declare class Module to make the header file self-contained.
Brian Gaeke [Fri, 25 Jul 2003 20:20:53 +0000 (20:20 +0000)]
Forward-declare class Module to make the header file self-contained.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7319 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMore cassert inclusion for GCC 3.3
Chris Lattner [Fri, 25 Jul 2003 18:06:53 +0000 (18:06 +0000)]
More cassert inclusion for GCC 3.3

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7318 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoChange reference to assert.h to mention cassert
Chris Lattner [Fri, 25 Jul 2003 18:05:51 +0000 (18:05 +0000)]
Change reference to assert.h to mention cassert

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7317 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoBrian implemented the static compiler, take it off the list
Chris Lattner [Fri, 25 Jul 2003 18:05:38 +0000 (18:05 +0000)]
Brian implemented the static compiler, take it off the list

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7316 91177308-0d34-0410-b5e6-96231b3b80d8

21 years ago#include <cassert> as necessary...
Chris Lattner [Fri, 25 Jul 2003 17:58:41 +0000 (17:58 +0000)]
#include <cassert> as necessary...

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7315 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoFix another accessibility problem illuminated by GCC 3.3
Chris Lattner [Fri, 25 Jul 2003 17:49:28 +0000 (17:49 +0000)]
Fix another accessibility problem illuminated by GCC 3.3

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7314 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoFix visibility problem exposed by GCC 3.3
Chris Lattner [Fri, 25 Jul 2003 17:46:25 +0000 (17:46 +0000)]
Fix visibility problem exposed by GCC 3.3

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7313 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRemove inline declarations that GCC 3.3 doesn't like without a body
Chris Lattner [Fri, 25 Jul 2003 17:39:33 +0000 (17:39 +0000)]
Remove inline declarations that GCC 3.3 doesn't like without a body

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7312 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoRegardless of whether C provides assert.h, C++ source can always include
Chris Lattner [Fri, 25 Jul 2003 17:35:03 +0000 (17:35 +0000)]
Regardless of whether C provides assert.h, C++ source can always include
<cassert>, making this header unneeded.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7311 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoUse the C++ <cassert> header, not the C <assert.h> header
Chris Lattner [Fri, 25 Jul 2003 17:34:17 +0000 (17:34 +0000)]
Use the C++ <cassert> header, not the C <assert.h> header

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7310 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoThis header works with GCC 3.3
Chris Lattner [Fri, 25 Jul 2003 17:33:45 +0000 (17:33 +0000)]
This header works with GCC 3.3

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7309 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoUse C++ headers, not C headers
Chris Lattner [Fri, 25 Jul 2003 17:32:51 +0000 (17:32 +0000)]
Use C++ headers, not C headers

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7308 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd includes of assert
Chris Lattner [Fri, 25 Jul 2003 17:23:27 +0000 (17:23 +0000)]
Add includes of assert

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7307 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoFix accessibility problems GCC 3.3
Chris Lattner [Fri, 25 Jul 2003 17:23:13 +0000 (17:23 +0000)]
Fix accessibility problems GCC 3.3

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7306 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAdd assert.h include
Chris Lattner [Fri, 25 Jul 2003 16:47:07 +0000 (16:47 +0000)]
Add assert.h include

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7305 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoConvert to C++ style comments
Chris Lattner [Fri, 25 Jul 2003 15:08:08 +0000 (15:08 +0000)]
Convert to C++ style comments

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7304 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoInclude vector into these two files to ensure that specializations like
Vikram S. Adve [Fri, 25 Jul 2003 14:06:13 +0000 (14:06 +0000)]
Include vector into these two files to ensure that specializations like
stl_bvector.h are correctly included into *anything* that includes hash_map
or hash_set.  ext/hash_map includes stl_vector.h directly and leaves
out the specializations, causing truly nasty bugs due to inconsistent
versions of vector<> being used for vector<bool> in different files.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7303 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMade a bunch of cleanups, as per Chris' recommendations:
Misha Brukman [Thu, 24 Jul 2003 21:59:10 +0000 (21:59 +0000)]
Made a bunch of cleanups, as per Chris' recommendations:
* Removed unused global and member variables
* Fixed comments (CodeGeneratorBug.cpp)
* Check for possibly failing GCC::create() and CBE::create()
* Remove generated files after diffing the output (e.g., shared object)
* Instead of using std::for_each, use explicit loops as std::for_each may
  duplicate the functor, and ours carries state
* Changed member var from cl::opt<std::string> to just std::string
* Fixed doxygen comments
* Fixed string comparisons to use [ str.empty() ] instead of [ str == "" ]
* Cache instances of CBE and GCC in BugDriver across compilations and executions
  while testing tools.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7302 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoCleanups:
Brian Gaeke [Thu, 24 Jul 2003 21:37:57 +0000 (21:37 +0000)]
Cleanups:

Mangler.cpp: Constify parameter to makeNameProper, and use const_iterator.
 Make Count an unsigned int, and use utostr().
 Don't name parameters things that start with underscore.
Mangler.h: All of the above, and also: Add Emacs mode-line.  Include <set>.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7301 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoFactor out name-mangling from X86/Printer, which is derived from CWriter,
Brian Gaeke [Thu, 24 Jul 2003 20:20:58 +0000 (20:20 +0000)]
Factor out name-mangling from X86/Printer, which is derived from CWriter,
into this new support class.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7300 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoUse unified CWriter-X86/Printer name mangler. Do not bother using
Brian Gaeke [Thu, 24 Jul 2003 20:20:44 +0000 (20:20 +0000)]
Use unified CWriter-X86/Printer name mangler.  Do not bother using
SlotCalculator in CWriter.  (Unfortunately, all this means a lot of
X86/Printer's methods have to be de-constified again.  Oh well.)

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7299 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMore testcases, which I'll implement later
Chris Lattner [Thu, 24 Jul 2003 19:44:51 +0000 (19:44 +0000)]
More testcases, which I'll implement later

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7298 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoModernize testcase
Chris Lattner [Thu, 24 Jul 2003 19:42:28 +0000 (19:42 +0000)]
Modernize testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7297 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoNew testcase
Chris Lattner [Thu, 24 Jul 2003 19:31:08 +0000 (19:31 +0000)]
New testcase

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7296 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoInstcombine: (A >> c1) << c2 for signed integers
Chris Lattner [Thu, 24 Jul 2003 18:38:56 +0000 (18:38 +0000)]
Instcombine: (A >> c1) << c2 for signed integers

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7295 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoNew testcases for signed shifts
Chris Lattner [Thu, 24 Jul 2003 18:38:09 +0000 (18:38 +0000)]
New testcases for signed shifts

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7294 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoMajor addition to bugpoint: ability to debug code generators (LLC and LLI).
Misha Brukman [Thu, 24 Jul 2003 18:17:43 +0000 (18:17 +0000)]
Major addition to bugpoint: ability to debug code generators (LLC and LLI).
The C backend is assumed correct and is used to generate shared objects to be
loaded by the other two code generators.

LLC debugging should be functional now, LLI needs a few more additions to work,
the major one is renaming of external functions to call the JIT lazy function
resolver.

Bugpoint now has a command-line switch -mode with options 'compile' and
'codegen' to debug appropriate portions of tools.

ExecutionDriver.cpp: Added implementations of AbstractInterpreter for LLC and
GCC, broke out common code within other tools, and added ability to generate C
code with CBE individually, without executing the program, and the GCC tool can
generate executables shared objects or executables.

If no reference output is specified to Bugpoint, it will be generated with CBE,
because it is already assumed to be correct for the purposes of debugging using
this method. As a result, many functions now accept as an optional parameter a
shared object to be loaded in, if specified.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7293 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoReorganization of code, no functional changes.
Chris Lattner [Thu, 24 Jul 2003 17:52:58 +0000 (17:52 +0000)]
Reorganization of code, no functional changes.
Now it shoudl be a bit more efficient

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7292 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoIt doesn't appear that we need to #include these.
Brian Gaeke [Thu, 24 Jul 2003 17:48:53 +0000 (17:48 +0000)]
It doesn't appear that we need to #include these.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7291 91177308-0d34-0410-b5e6-96231b3b80d8

21 years agoAllow folding several instructions into casts, which can simplify a lot
Chris Lattner [Thu, 24 Jul 2003 17:35:25 +0000 (17:35 +0000)]
Allow folding several instructions into casts, which can simplify a lot
of codes.  For example,
short kernel (short t1) {
  t1 >>= 8; t1 <<= 8;
  return t1;
}

became:

short %kernel(short %t1.1) {
        %tmp.3 = shr short %t1.1, ubyte 8               ; <short> [#uses=1]
        %tmp.5 = cast short %tmp.3 to int               ; <int> [#uses=1]
        %tmp.7 = shl int %tmp.5, ubyte 8                ; <int> [#uses=1]
        %tmp.8 = cast int %tmp.7 to short               ; <short> [#uses=1]
        ret short %tmp.8
}

before, now it becomes:
short %kernel(short %t1.1) {
        %tmp.3 = shr short %t1.1, ubyte 8               ; <short> [#uses=1]
        %tmp.8 = shl short %tmp.3, ubyte 8              ; <short> [#uses=1]
        ret short %tmp.8
}

which will become:
short %kernel(short %t1.1) {
        %tmp.3 = and short %t1.1, 0xFF00
        ret short %tmp.3
}

This implements cast-set.ll:test4 and test5

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@7290 91177308-0d34-0410-b5e6-96231b3b80d8