oota-llvm.git
20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 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

20 years agoMinor cleanups
Chris Lattner [Thu, 24 Jul 2003 17:31:56 +0000 (17:31 +0000)]
Minor cleanups

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

20 years agoConstify most methods. We could have constified doInitialization and
Brian Gaeke [Thu, 24 Jul 2003 17:30:45 +0000 (17:30 +0000)]
Constify most methods. We could have constified doInitialization and
doFinalization too except that would have made them shadow, not override,
the parent class :-P.

Allow *any* constant cast expression between pointers and longs,
or vice-versa, or any widening (not just same-size) conversion that
isLosslesslyConvertibleTo approves. This fixes oopack.

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

20 years agoDisable sample project until it works
Chris Lattner [Wed, 23 Jul 2003 23:28:57 +0000 (23:28 +0000)]
Disable sample project until it works

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

20 years agoAdd new tests, make existing tests more difficult
Chris Lattner [Wed, 23 Jul 2003 23:21:08 +0000 (23:21 +0000)]
Add new tests, make existing tests more difficult

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

20 years agoFix bug: FunctionResolve/2003-07-23-CPR-Reference.ll
Chris Lattner [Wed, 23 Jul 2003 22:03:18 +0000 (22:03 +0000)]
Fix bug: FunctionResolve/2003-07-23-CPR-Reference.ll

This fixes a long time annoyance which caused prototypes for bzero, bcopy,
bcmp, fputs, and fputs_unlocked to never get deleted.  Grr.

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

20 years agoNew testcase
Chris Lattner [Wed, 23 Jul 2003 22:02:39 +0000 (22:02 +0000)]
New testcase

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

20 years agoAdd comments
Chris Lattner [Wed, 23 Jul 2003 21:41:57 +0000 (21:41 +0000)]
Add comments

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

20 years agoRemove explicit check for: not (not X) = X, it is already handled because xor is...
Chris Lattner [Wed, 23 Jul 2003 21:37:07 +0000 (21:37 +0000)]
Remove explicit check for: not (not X) = X, it is already handled because xor is commutative
  - InstCombine: (X & C1) ^ C2 --> (X & C1) | C2 iff (C1&C2) == 0
  - InstCombine: (X | C1) ^ C2 --> (X | C1) & ~C2 iff (C1&C2) == C2

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

20 years agoNew testcases
Chris Lattner [Wed, 23 Jul 2003 21:36:01 +0000 (21:36 +0000)]
New testcases

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

20 years agoRenumber tests sequentially
Chris Lattner [Wed, 23 Jul 2003 21:11:56 +0000 (21:11 +0000)]
Renumber tests sequentially

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

20 years agoSplit the or and xor tests into two separate files
Chris Lattner [Wed, 23 Jul 2003 21:10:55 +0000 (21:10 +0000)]
Split the or and xor tests into two separate files

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

20 years agoRemove obscure test
Chris Lattner [Wed, 23 Jul 2003 21:06:34 +0000 (21:06 +0000)]
Remove obscure test

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

20 years agoCheck in old testcase sitting in my tree
Chris Lattner [Wed, 23 Jul 2003 20:48:03 +0000 (20:48 +0000)]
Check in old testcase sitting in my tree

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

20 years agoFix program: SingleSource/UnitTests/2003-07-09-SignedArgs with the CBE
Chris Lattner [Wed, 23 Jul 2003 20:45:31 +0000 (20:45 +0000)]
Fix program: SingleSource/UnitTests/2003-07-09-SignedArgs with the CBE

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

20 years agoPrinter.cpp: Ditch addRequired/getAnalysis, because they leave
Brian Gaeke [Wed, 23 Jul 2003 20:25:08 +0000 (20:25 +0000)]
Printer.cpp: Ditch addRequired/getAnalysis, because they leave
  Printer::doFinalization() out in the cold.  Now we pass in a TargetMachine
  to Printer's constructor and get the TargetData from the TargetMachine.
 Don't pass TargetMachine or MRegisterInfo objects around in the Printer.
 Constify TargetData references.
X86.h: Update comment and prototype of createX86CodePrinterPass().
X86TargetMachine.cpp: Update callers of createX86CodePrinterPass().

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

20 years agoMake Module::getNamedFunction prefer non-external functions if there is more than
Chris Lattner [Wed, 23 Jul 2003 20:21:30 +0000 (20:21 +0000)]
Make Module::getNamedFunction prefer non-external functions if there is more than
one function of the same name

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

20 years agoFix space
Chris Lattner [Wed, 23 Jul 2003 20:21:06 +0000 (20:21 +0000)]
Fix space

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

20 years agoInstCombine: (X ^ C1) & C2 --> (X & C2) iff (C1&C2) == 0
Chris Lattner [Wed, 23 Jul 2003 19:36:21 +0000 (19:36 +0000)]
InstCombine: (X ^ C1) & C2 --> (X & C2) iff (C1&C2) == 0

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

20 years agoNew testcase
Chris Lattner [Wed, 23 Jul 2003 19:35:51 +0000 (19:35 +0000)]
New testcase

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

20 years ago - InstCombine: (X | C1) & C2 --> X & C2 iff C1 & C1 == 0
Chris Lattner [Wed, 23 Jul 2003 19:25:52 +0000 (19:25 +0000)]
  - InstCombine: (X | C1) & C2 --> X & C2 iff C1 & C1 == 0
  - InstCombine: (X | C) & C --> C
  - InstCombine: (X | C1) & C2 --> (X | (C1&C2)) & C2

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

20 years agoNew testcase
Chris Lattner [Wed, 23 Jul 2003 19:24:34 +0000 (19:24 +0000)]
New testcase

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

20 years agoNew testcase
Chris Lattner [Wed, 23 Jul 2003 19:05:29 +0000 (19:05 +0000)]
New testcase

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

20 years agoAdd, rewrite, and/or reformat many comments.
Brian Gaeke [Wed, 23 Jul 2003 18:37:06 +0000 (18:37 +0000)]
Add, rewrite, and/or reformat many comments.

Stop passing ostreams around: we already have one perfectly good ostream
and we can all share it.

Stop stashing a pointer to TargetData in the Pass object, because that will
lead to a crash if there are no functions in the module (ouch!)  Instead,
use addRequired() and getAnalysis(), like we always should have done.

Move the check for ConstantExpr up before the check for isPrimitiveType,
because we need to be able to catch e.g. ubyte (cast bool false to ubyte),
whose type is primitive but which is nevertheless a ConstantExpr, by calling
our specialized handler instead of the AsmWriter. This would result in
assembler errors when we would try to output something like ".byte (cast
bool false to ubyte)".

GC some unused variable declarations.

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

20 years agoIC: (X & C1) | C2 --> (X | C2) & (C1|C2)
Chris Lattner [Wed, 23 Jul 2003 18:29:44 +0000 (18:29 +0000)]
IC: (X & C1) | C2 --> (X | C2) & (C1|C2)
IC: (X ^ C1) | C2 --> (X | C2) ^ (C1&~C2)

We are now guaranteed that all 'or's will be inside of 'and's, and all 'and's
will be inside of 'xor's, if the second operands are constants.

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