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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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