oota-llvm.git
22 years agoTighten up the AnalysisUsage of lots of passes, primarily to correctly indicate wheth...
Chris Lattner [Sun, 28 Apr 2002 21:26:51 +0000 (21:26 +0000)]
Tighten up the AnalysisUsage of lots of passes, primarily to correctly indicate whether or not they invalidate the CFG

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

22 years agoMove FunctionPass::doesNotModifyCFG to AnalysisUsage::preservesCFG()
Chris Lattner [Sun, 28 Apr 2002 21:25:41 +0000 (21:25 +0000)]
Move FunctionPass::doesNotModifyCFG to AnalysisUsage::preservesCFG()

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

22 years ago* Add a stub to FunctionPass so that subclasses can declare that they do not
Chris Lattner [Sun, 28 Apr 2002 20:46:05 +0000 (20:46 +0000)]
* Add a stub to FunctionPass so that subclasses can declare that they do not
  modify the CFG.  It currently does nothing, but will in the future.
* Changes to make the public PassManager.h be MUCH smaller, and devoid of
  implementation details.  Now PassManager is just a Pimpl class that wraps
  PassManagerT<Module>, but lib/VMCore/Pass.cpp is now the only class that
  has to #include PassManagerT.h

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

22 years agoMove include/llvm/PassManager.h to lib/VMCore/PassManagerT.h
Chris Lattner [Sun, 28 Apr 2002 20:42:50 +0000 (20:42 +0000)]
Move include/llvm/PassManager.h to lib/VMCore/PassManagerT.h

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

22 years agoAdd #include that was removed from TargetMachine.h
Chris Lattner [Sun, 28 Apr 2002 20:40:59 +0000 (20:40 +0000)]
Add #include that was removed from TargetMachine.h

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

22 years agoUse forward decl instead of #include
Chris Lattner [Sun, 28 Apr 2002 20:40:25 +0000 (20:40 +0000)]
Use forward decl instead of #include

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

22 years agoInclude appropriate file
Chris Lattner [Sun, 28 Apr 2002 20:40:16 +0000 (20:40 +0000)]
Include appropriate file

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

22 years agoSplit ConstantVals.h into Constant.h and Constants.h
Chris Lattner [Sun, 28 Apr 2002 19:55:58 +0000 (19:55 +0000)]
Split ConstantVals.h into Constant.h and Constants.h

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

22 years agoFix two FIXME's
Chris Lattner [Sun, 28 Apr 2002 19:49:58 +0000 (19:49 +0000)]
Fix two FIXME's

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

22 years agoSimplify and update code a bit
Chris Lattner [Sun, 28 Apr 2002 19:20:10 +0000 (19:20 +0000)]
Simplify and update code a bit

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

22 years agoEliminate the PromoteInstance class, incorporating it into the PromotePass
Chris Lattner [Sun, 28 Apr 2002 19:12:38 +0000 (19:12 +0000)]
Eliminate the PromoteInstance class, incorporating it into the PromotePass
class.

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

22 years agoEliminate visited, CurrentValue, and WriteSets as instance variables of
Chris Lattner [Sun, 28 Apr 2002 18:54:01 +0000 (18:54 +0000)]
Eliminate visited, CurrentValue, and WriteSets as instance variables of
PromoteInstance.  Make them local variables that are passed around as
appropriate.  Especially in the case of CurrentValue, this makes the
code simpler.

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

22 years ago* Fix bug: test/Regression/Transforms/Mem2Reg/2002-03-28-UninitializedVal.ll
Chris Lattner [Sun, 28 Apr 2002 18:39:46 +0000 (18:39 +0000)]
* Fix bug: test/Regression/Transforms/Mem2Reg/2002-03-28-UninitializedVal.ll
* Minor cleanup that was missed in last patch

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

22 years agoThis huge changeset is a strictly cleanup change
Chris Lattner [Sun, 28 Apr 2002 18:27:55 +0000 (18:27 +0000)]
This huge changeset is a strictly cleanup change
Bugfixes will come in the next revision so that the diff is obvious.

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

22 years agoEliminate the cfg namespace
Chris Lattner [Sun, 28 Apr 2002 16:21:53 +0000 (16:21 +0000)]
Eliminate the cfg namespace

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

22 years agoEliminate the cfg namespace, moving LoopInfo, Dominators, Interval* classes
Chris Lattner [Sun, 28 Apr 2002 16:21:30 +0000 (16:21 +0000)]
Eliminate the cfg namespace, moving LoopInfo, Dominators, Interval* classes
to the global namespace

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

22 years agoRemove all contents of the cfg namespace to the global namespace
Chris Lattner [Sun, 28 Apr 2002 16:19:42 +0000 (16:19 +0000)]
Remove all contents of the cfg namespace to the global namespace

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

22 years agoRemove obsolete namespace from example
Chris Lattner [Sun, 28 Apr 2002 16:18:32 +0000 (16:18 +0000)]
Remove obsolete namespace from example

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

22 years agoRemove extra unused argument from CheckFailed method
Chris Lattner [Sun, 28 Apr 2002 16:06:24 +0000 (16:06 +0000)]
Remove extra unused argument from CheckFailed method
Remove extraneous \n's from assert strings

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

22 years agoThe check to see if an external function was marked internal was not reachable!
Chris Lattner [Sun, 28 Apr 2002 16:04:26 +0000 (16:04 +0000)]
The check to see if an external function was marked internal was not reachable!

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

22 years agoExpose the internalize pass.
Chris Lattner [Sun, 28 Apr 2002 05:49:53 +0000 (05:49 +0000)]
Expose the internalize pass.

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

22 years agoRun the internalize pass to mark all functions except main internal when
Chris Lattner [Sun, 28 Apr 2002 05:49:45 +0000 (05:49 +0000)]
Run the internalize pass to mark all functions except main internal when
linking the final program to allow smarter optimizations

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

22 years agoBe careful not to make "external" function internal
Chris Lattner [Sun, 28 Apr 2002 05:48:34 +0000 (05:48 +0000)]
Be careful not to make "external" function internal

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

22 years agoInitial checkin of new "Internalize" pass for GCCLD
Chris Lattner [Sun, 28 Apr 2002 05:43:27 +0000 (05:43 +0000)]
Initial checkin of new "Internalize" pass for GCCLD

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

22 years agoMinor changes to allow Modules (which are no longer Values) to work
Chris Lattner [Sun, 28 Apr 2002 05:14:06 +0000 (05:14 +0000)]
Minor changes to allow Modules (which are no longer Values) to work

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

22 years agoUse operator << to print modules
Chris Lattner [Sun, 28 Apr 2002 05:13:45 +0000 (05:13 +0000)]
Use operator << to print modules

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

22 years agoSymTabValue class incorporated into Function and Module classes.
Chris Lattner [Sun, 28 Apr 2002 04:56:59 +0000 (04:56 +0000)]
SymTabValue class incorporated into Function and Module classes.

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

22 years agoInclude an operator<<, to print modules
Chris Lattner [Sun, 28 Apr 2002 04:56:28 +0000 (04:56 +0000)]
Include an operator<<, to print modules

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

22 years agoEliminate use of SymTabValue class
Chris Lattner [Sun, 28 Apr 2002 04:55:14 +0000 (04:55 +0000)]
Eliminate use of SymTabValue class

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

22 years agoThe contents of the SymTabValue class have been incorporated into the
Chris Lattner [Sun, 28 Apr 2002 04:52:28 +0000 (04:52 +0000)]
The contents of the SymTabValue class have been incorporated into the
Module and Function classes directly.

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

22 years ago* Incorporate the contents of SymTabValue into Function and Module
Chris Lattner [Sun, 28 Apr 2002 04:51:51 +0000 (04:51 +0000)]
* Incorporate the contents of SymTabValue into Function and Module
* Module no longer subclasses Value

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

22 years agoModule's are no longer values
Chris Lattner [Sun, 28 Apr 2002 04:51:09 +0000 (04:51 +0000)]
Module's are no longer values

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

22 years agoSimplify code
Chris Lattner [Sun, 28 Apr 2002 04:50:54 +0000 (04:50 +0000)]
Simplify code
Remove unneccesary getID variant for module's

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

22 years agoRemove unneccesary #include
Chris Lattner [Sun, 28 Apr 2002 04:50:19 +0000 (04:50 +0000)]
Remove unneccesary #include

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

22 years agoModule's are no longer Value subclasses
Chris Lattner [Sun, 28 Apr 2002 04:50:00 +0000 (04:50 +0000)]
Module's are no longer Value subclasses

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

22 years agoFix signed/unsigned comparison warning
Chris Lattner [Sun, 28 Apr 2002 04:49:43 +0000 (04:49 +0000)]
Fix signed/unsigned comparison warning

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

22 years agoRemove forward def'ns that are already in Value.h
Chris Lattner [Sun, 28 Apr 2002 04:47:33 +0000 (04:47 +0000)]
Remove forward def'ns that are already in Value.h
Do not support output of Modules directly

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

22 years agos/Method/Function
Chris Lattner [Sun, 28 Apr 2002 04:47:06 +0000 (04:47 +0000)]
s/Method/Function

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

22 years agoModule's are no longer Value's.
Chris Lattner [Sun, 28 Apr 2002 04:46:29 +0000 (04:46 +0000)]
Module's are no longer Value's.

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

22 years agoThe interesting contents of SymTabValue were incorporated into Function
Chris Lattner [Sun, 28 Apr 2002 04:46:07 +0000 (04:46 +0000)]
The interesting contents of SymTabValue were incorporated into Function

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

22 years ago* Module's are no longer Value's
Chris Lattner [Sun, 28 Apr 2002 04:45:48 +0000 (04:45 +0000)]
* Module's are no longer Value's
* Incorporate SymTabValue contents into the Module class

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

22 years agoAdd a forward defn for Module since it's no longer in Value.h
Chris Lattner [Sun, 28 Apr 2002 04:45:05 +0000 (04:45 +0000)]
Add a forward defn for Module since it's no longer in Value.h

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

22 years ago* Incorporate the functionality of SymTabValue into Function
Chris Lattner [Sun, 28 Apr 2002 04:44:40 +0000 (04:44 +0000)]
* Incorporate the functionality of SymTabValue into Function
* s/Method/Function

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

22 years agoNew testcase for GCSE
Chris Lattner [Sun, 28 Apr 2002 01:46:36 +0000 (01:46 +0000)]
New testcase for GCSE

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

22 years agoTest GCSE
Chris Lattner [Sun, 28 Apr 2002 01:46:30 +0000 (01:46 +0000)]
Test GCSE

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

22 years agoRun GCSE as part of gccas.
Chris Lattner [Sun, 28 Apr 2002 01:00:15 +0000 (01:00 +0000)]
Run GCSE as part of gccas.

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

22 years agoExpose new GCSE pass
Chris Lattner [Sun, 28 Apr 2002 00:48:17 +0000 (00:48 +0000)]
Expose new GCSE pass

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

22 years agoInitial checkin of simple&fast SSA based GCSE algorithm
Chris Lattner [Sun, 28 Apr 2002 00:47:11 +0000 (00:47 +0000)]
Initial checkin of simple&fast SSA based GCSE algorithm

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

22 years agoChange the Dominator info and LoopInfo classes to keep track of BasicBlock's, not
Chris Lattner [Sun, 28 Apr 2002 00:15:57 +0000 (00:15 +0000)]
Change the Dominator info and LoopInfo classes to keep track of BasicBlock's, not
const BasicBlocks

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

22 years agos/Method/Function
Chris Lattner [Sat, 27 Apr 2002 07:27:19 +0000 (07:27 +0000)]
s/Method/Function

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

22 years agos/Method/Function in classname
Chris Lattner [Sat, 27 Apr 2002 06:59:56 +0000 (06:59 +0000)]
s/Method/Function in classname

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

22 years agoRemove old file that will never be used
Chris Lattner [Sat, 27 Apr 2002 06:57:52 +0000 (06:57 +0000)]
Remove old file that will never be used

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

22 years ago* Rename MethodPass class to FunctionPass
Chris Lattner [Sat, 27 Apr 2002 06:56:12 +0000 (06:56 +0000)]
* Rename MethodPass class to FunctionPass
  - Rename runOnMethod to runOnFunction
* Transform getAnalysisUsageInfo into getAnalysisUsage
  - Method is now const
  - It now takes one AnalysisUsage object to fill in instead of 3 vectors
    to fill in
  - Pass's now specify which other passes they _preserve_ not which ones
    they modify (be conservative!)
  - A pass can specify that it preserves all analyses (because it never
    modifies the underlying program)
* s/Method/Function/g in other random places as well

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

22 years agoChanges because the Terminator::getSuccessor function now FAILS if successor
Chris Lattner [Sat, 27 Apr 2002 03:15:45 +0000 (03:15 +0000)]
Changes because the Terminator::getSuccessor function now FAILS if successor
IDX is out of range instead of returning null.

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

22 years agoUse the cast<> operator in favor of C style casts
Chris Lattner [Sat, 27 Apr 2002 03:14:39 +0000 (03:14 +0000)]
Use the cast<> operator in favor of C style casts

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

22 years agoChange the semantics of getSuccessor to FAIL if an out of range successor # is attempted.
Chris Lattner [Sat, 27 Apr 2002 03:14:12 +0000 (03:14 +0000)]
Change the semantics of getSuccessor to FAIL if an out of range successor # is attempted.

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

22 years ago* Change Constant::getNullConstant to Constant::getNullValue
Chris Lattner [Sat, 27 Apr 2002 02:29:32 +0000 (02:29 +0000)]
* Change Constant::getNullConstant to Constant::getNullValue
* Add support for pool allocating array allocations of varying size

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

22 years agoAdd support for tracking array allocations
Chris Lattner [Sat, 27 Apr 2002 02:28:41 +0000 (02:28 +0000)]
Add support for tracking array allocations

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

22 years agoAllow the inline limit to be modified on the commandline for debugging
Chris Lattner [Sat, 27 Apr 2002 02:27:48 +0000 (02:27 +0000)]
Allow the inline limit to be modified on the commandline for debugging

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

22 years agoSupport array allocations
Chris Lattner [Sat, 27 Apr 2002 02:27:11 +0000 (02:27 +0000)]
Support array allocations

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

22 years agoTrivial simplification of code
Chris Lattner [Sat, 27 Apr 2002 02:26:03 +0000 (02:26 +0000)]
Trivial simplification of code

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

22 years ago* Change Constant::getNullConstant to Constant::getNullValue
Chris Lattner [Sat, 27 Apr 2002 02:25:43 +0000 (02:25 +0000)]
* Change Constant::getNullConstant to Constant::getNullValue
* Remove some unused code

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

22 years agoChange Constant::getNullConstant to Constant::getNullValue
Chris Lattner [Sat, 27 Apr 2002 02:25:14 +0000 (02:25 +0000)]
Change Constant::getNullConstant to Constant::getNullValue

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

22 years agoSimplify code a bit
Chris Lattner [Sat, 27 Apr 2002 02:24:17 +0000 (02:24 +0000)]
Simplify code a bit

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

22 years agoRename getNullConstant to getNullValue
Chris Lattner [Sat, 27 Apr 2002 02:22:42 +0000 (02:22 +0000)]
Rename getNullConstant to getNullValue

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

22 years agoAdded functions to compute the offset of a given incoming or outgoing
Vikram S. Adve [Thu, 25 Apr 2002 04:48:54 +0000 (04:48 +0000)]
Added functions to compute the offset of a given incoming or outgoing
argument. These are no longer allocated as they are discovered.

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

22 years agoOptional args are no longer allocated as they are discovered.
Vikram S. Adve [Thu, 25 Apr 2002 04:47:26 +0000 (04:47 +0000)]
Optional args are no longer allocated as they are discovered.
(This can be improved to avoid making the initial pass over the method.)
Also, ensure automatic vars and reg. spills areas are not extended
if their sizes are used for computing some other offset.

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

22 years agoDon't record instructions for copying method arguments in the
Vikram S. Adve [Thu, 25 Apr 2002 04:46:28 +0000 (04:46 +0000)]
Don't record instructions for copying method arguments in the
AddedInstrns sets for the first machine instruction.  It is hard
to ensure that the right order is preserved, and sure enough, the
order was broken.  Instead, use a separate set for the function entry.

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

22 years agoDon't pad spills and temp. stack areas for alignment.
Vikram S. Adve [Thu, 25 Apr 2002 04:43:45 +0000 (04:43 +0000)]
Don't pad spills and temp. stack areas for alignment.
Freeze auto vars and spill areas when their sizes are used
for computing other offsets.

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

22 years agoMajor changes to how int and FP arguments are handled. Varargs
Vikram S. Adve [Thu, 25 Apr 2002 04:42:21 +0000 (04:42 +0000)]
Major changes to how int and FP arguments are handled.  Varargs
function calls were simply wrong; other functions were just not
using all available registers.

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

22 years agoAdded functions to compute which register, if any, to use
Vikram S. Adve [Thu, 25 Apr 2002 04:40:24 +0000 (04:40 +0000)]
Added functions to compute which register, if any, to use
for a particular argument in a list of arguments.

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

22 years agoInsert copy operations for FP arguments to a varargs function,
Vikram S. Adve [Thu, 25 Apr 2002 04:37:51 +0000 (04:37 +0000)]
Insert copy operations for FP arguments to a varargs function,
to copy the FP arg. to an integer.  Necessary so that the
register allocator has two different live ranges for the FP value
and the int. argument.

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

22 years agoImplementation of class MachineFrameInfo.
Vikram S. Adve [Thu, 25 Apr 2002 04:35:27 +0000 (04:35 +0000)]
Implementation of class MachineFrameInfo.

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

22 years agoDon't record instructions for copying method arguments in the
Vikram S. Adve [Thu, 25 Apr 2002 04:34:15 +0000 (04:34 +0000)]
Don't record instructions for copying method arguments in the
AddedInstrns sets for the first machine instruction.  It is hard
to ensure that the right order is preserved, and sure enough, the
order was broken.  Instead, use a separate set for the function entry.

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

22 years agoImprove printing during dumps.
Vikram S. Adve [Thu, 25 Apr 2002 04:31:18 +0000 (04:31 +0000)]
Improve printing during dumps.

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

22 years agoOptional args are no longer allocated as they are discovered.
Vikram S. Adve [Thu, 25 Apr 2002 04:30:43 +0000 (04:30 +0000)]
Optional args are no longer allocated as they are discovered.
(This can be improved to avoid making the initial pass over the method.)
Also, ensure automatic vars and reg. spills areas are not extended
if their sizes are used for computing some other offset.

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

22 years ago* Abort program on verification errors
Chris Lattner [Wed, 24 Apr 2002 19:12:21 +0000 (19:12 +0000)]
* Abort program on verification errors
* Verify that load, store, and GEP instructions indices are correct, because
  they _continually_ bite me on this pool allocations stuff

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

22 years agoAdd some basic checks of CallInst's.
Chris Lattner [Thu, 18 Apr 2002 22:11:52 +0000 (22:11 +0000)]
Add some basic checks of CallInst's.
Assert now returns from the current function on error.

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

22 years agoPrograms that actually free memory were broken
Chris Lattner [Thu, 18 Apr 2002 22:11:30 +0000 (22:11 +0000)]
Programs that actually free memory were broken

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

22 years agoChanges to make print pass work!
Chris Lattner [Thu, 18 Apr 2002 22:11:12 +0000 (22:11 +0000)]
Changes to make print pass work!

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

22 years ago* Convert the verifier to use an InstVisitor to be better structured
Chris Lattner [Thu, 18 Apr 2002 20:37:37 +0000 (20:37 +0000)]
* Convert the verifier to use an InstVisitor to be better structured
* Implement checking that a binary operator's two sides are the same type
* Actually check that an instruction does not have a name if it has a void
  return type.

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

22 years agoNew testcase
Chris Lattner [Thu, 18 Apr 2002 20:30:58 +0000 (20:30 +0000)]
New testcase

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

22 years agoMake sure that there is no case where a signal can occur leaving a partially
Chris Lattner [Thu, 18 Apr 2002 19:55:25 +0000 (19:55 +0000)]
Make sure that there is no case where a signal can occur leaving a partially
written output file.  This is important because crashing testcases often write
part of a file out, and the testing harness decides the file is up-to-date next
time the test is run.

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

22 years agoAdd new api for basic signal handling for tools
Chris Lattner [Thu, 18 Apr 2002 19:53:53 +0000 (19:53 +0000)]
Add new api for basic signal handling for tools

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

22 years agoNew api for signal handling for LLVM tools
Chris Lattner [Thu, 18 Apr 2002 19:53:34 +0000 (19:53 +0000)]
New api for signal handling for LLVM tools

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

22 years agoMove asmwriter/getStrValue cruft into AsmWriter.cpp file.
Chris Lattner [Thu, 18 Apr 2002 18:53:33 +0000 (18:53 +0000)]
Move asmwriter/getStrValue cruft into AsmWriter.cpp file.

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

22 years agoPull all of the getStrValue implementation cruft out of Constants.cpp and
Chris Lattner [Thu, 18 Apr 2002 18:53:13 +0000 (18:53 +0000)]
Pull all of the getStrValue implementation cruft out of Constants.cpp and
put it into the AsmWriter.  This code is kinda gross and could probably be
cleaned up, but not now.

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

22 years agoAdd a fixme so that we don't forget this is broken.
Chris Lattner [Thu, 18 Apr 2002 18:52:03 +0000 (18:52 +0000)]
Add a fixme so that we don't forget this is broken.

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

22 years agoRemove getStrValue method from Constant implementations. The AssemblyWriter
Chris Lattner [Thu, 18 Apr 2002 18:51:39 +0000 (18:51 +0000)]
Remove getStrValue method from Constant implementations.  The AssemblyWriter
now knows how to write out a constant, not the constants themselves.  This is
fixed due to the move of the AsmWriter to the VMcore library.

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

22 years ago* getAsString requires that the input array is string compatible, so
Chris Lattner [Thu, 18 Apr 2002 18:15:38 +0000 (18:15 +0000)]
* getAsString requires that the input array is string compatible, so
  assert it.
* Use WriteAsOperand instead of getStringValue for constants

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

22 years agoMake debugging code not use getStrValue
Chris Lattner [Thu, 18 Apr 2002 18:14:56 +0000 (18:14 +0000)]
Make debugging code not use getStrValue

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

22 years agoJust use << isntead of forcing getStrValue
Chris Lattner [Thu, 18 Apr 2002 18:14:40 +0000 (18:14 +0000)]
Just use << isntead of forcing getStrValue

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

22 years agoPrint argument scalars as ellipses instead of boxes
Chris Lattner [Thu, 18 Apr 2002 18:14:19 +0000 (18:14 +0000)]
Print argument scalars as ellipses instead of boxes

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

22 years agoSignificantly rework InstructionCombining to work better and to be cleaner.
Chris Lattner [Thu, 18 Apr 2002 17:39:14 +0000 (17:39 +0000)]
Significantly rework InstructionCombining to work better and to be cleaner.
We now use an InstVisitor to delegate to different cases that we are
interested in handling.  We also fix the FIXME's by adding users to the
worklist when appropriate.

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

22 years agoNew testcase.
Chris Lattner [Thu, 18 Apr 2002 17:35:39 +0000 (17:35 +0000)]
New testcase.

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

22 years ago* Add a comment to the header giving a breif overview of how to return a
Chris Lattner [Thu, 18 Apr 2002 16:16:16 +0000 (16:16 +0000)]
* Add a comment to the header giving a breif overview of how to return a
  value from a visit function
* Define a (file local) DELEGATE macro to make the code easier to read/maintain
* Define per-opcode delegation functions so that users can override specific
  instances of BinaryOperator for example.

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

22 years ago* Make dtor virtual
Chris Lattner [Thu, 18 Apr 2002 15:46:40 +0000 (15:46 +0000)]
* Make dtor virtual
* Add a new defaulted argument that allows the instruction visitation
  visitors to return a non-void value.

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

22 years agoCheck in the first test: make sure getelementptr gets folded
Chris Lattner [Thu, 18 Apr 2002 15:39:50 +0000 (15:39 +0000)]
Check in the first test: make sure getelementptr gets folded

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

22 years agoTest the instruction combiner
Chris Lattner [Thu, 18 Apr 2002 15:39:15 +0000 (15:39 +0000)]
Test the instruction combiner

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

22 years agoConvert SCCP over to use InstVisitor instead of hand crafted switch
Chris Lattner [Thu, 18 Apr 2002 15:13:15 +0000 (15:13 +0000)]
Convert SCCP over to use InstVisitor instead of hand crafted switch

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