Commit Graph

140 Commits

Author SHA1 Message Date
Vikram S. Adve 1a1c3ed56d Add function GetConstantValueAsUnsignedInt.
Fix 2 bugs in FoldGetElemChain so index vector is not modified
when no GEPs are folded in, and so a hasLeadingZero is computed
only for the last folded GEP, not the one after that if any.

llvm-svn: 3244
2002-08-04 20:49:49 +00:00
Chris Lattner 4bc962d1d5 * Move InstructionSelection Pass here instead of living in Sparc.cpp. It
is platform independant afterall.
* Object orientize the functions, cleanup code a bit.  Instead of static
  global functions, the helpers for instruction selection are now part of
  the InstructionSelection Pass class.

llvm-svn: 3147
2002-07-30 03:57:36 +00:00
Chris Lattner 05e148710e Remove unused vector
llvm-svn: 3143
2002-07-30 02:52:40 +00:00
Mehwish Nagda c4ffab60d5 moving to the Reoptimizer/Mapping dir
llvm-svn: 2993
2002-07-22 22:10:55 +00:00
Chris Lattner f5cad15a67 *** empty log message ***
llvm-svn: 2985
2002-07-22 02:10:13 +00:00
Mehwish Nagda 0644a84a5f changed size computation
llvm-svn: 2974
2002-07-19 22:54:08 +00:00
Mehwish Nagda 98b9e48981 added check for Function with 0 BB
llvm-svn: 2942
2002-07-17 23:40:33 +00:00
Mehwish Nagda 81264e6bed Now will profile all Basic Blocks
llvm-svn: 2922
2002-07-16 17:48:27 +00:00
Mehwish Nagda 6c9544a2a0 Initial checking : Writes LLVM - MI mappiing to the .s file
llvm-svn: 2911
2002-07-15 23:08:49 +00:00
Vikram S. Adve 2bd7ae169d Moved class MachineCodeForBasicBlock to MachineCodeForBasicBlock.h.
This class is now an annotation on BasicBlock.

llvm-svn: 2829
2002-07-08 23:03:10 +00:00
Vikram S. Adve a9c93af49f MachineInstr::dump() now takes no arguments.
llvm-svn: 2828
2002-07-08 23:01:46 +00:00
Anand Shukla 458496c060 changes to make it compatible with 64bit gcc
llvm-svn: 2791
2002-06-25 20:55:50 +00:00
Chris Lattner 7076ff29ed MEGAPATCH checkin.
For details, See: docs/2002-06-25-MegaPatchInfo.txt

llvm-svn: 2778
2002-06-25 16:13:21 +00:00
Chris Lattner 99bd13b415 Hide debugging options
llvm-svn: 2676
2002-05-20 21:39:10 +00:00
Vikram S. Adve 16384011d2 Better folding getelementptr operations with mixed
array and struct indexes.
Update operand values in CallArgsDescriptor (a new class)
when replacing constant values with immediates.

llvm-svn: 2645
2002-05-19 15:34:29 +00:00
Vikram S. Adve 069d51612f cpValue2Value now needs a vector of MachineInstr to store return values.
llvm-svn: 2644
2002-05-19 15:31:08 +00:00
Chris Lattner 181cc32365 Replace all usages of Type::isPointerType with isa<PointerType>
llvm-svn: 2486
2002-05-06 16:15:30 +00:00
Chris Lattner 70411b074c Add neccesary #include
llvm-svn: 2406
2002-04-29 18:48:55 +00:00
Chris Lattner d5a847057b Eliminate duplicate or unneccesary #include's
llvm-svn: 2397
2002-04-29 17:42:12 +00:00
Chris Lattner ca14237696 Split ConstantVals.h into Constant.h and Constants.h
llvm-svn: 2378
2002-04-28 19:55:58 +00:00
Chris Lattner 2e9fa6d101 Move FunctionArgument out of iOther.h into Argument.h and rename class to
be 'Argument' instead of FunctionArgument.

llvm-svn: 2216
2002-04-09 19:48:49 +00:00
Chris Lattner 3abd752f90 GCC3.0 is reported to die without an alloca definition.
llvm-svn: 2186
2002-04-09 03:37:11 +00:00
Chris Lattner 8690ac124f Don't leak memory like a seive
llvm-svn: 2185
2002-04-08 23:09:07 +00:00
Chris Lattner aca4d447c9 Value cannot be directly instantiated. I think that this code was TRYING to
make a PHI node, although it was badly broken.  This keeps tests passing, so
we'll go with it.

llvm-svn: 2184
2002-04-08 22:05:54 +00:00
Chris Lattner 62b7fd136e Change references to the Method class to be references to the Function
class.  The Method class is obsolete (renamed) and all references to it
are being converted over to Function.

llvm-svn: 2144
2002-04-07 20:49:59 +00:00
Vikram S. Adve 5bf8890305 Fix a bug in previous bug fix.
llvm-svn: 2069
2002-03-31 18:56:51 +00:00
Chris Lattner 57698e2c0b Change references from Method to Function
change references from MethodARgument to FunctionArgument

llvm-svn: 1991
2002-03-26 18:01:55 +00:00
Vikram S. Adve dc96167e00 Major overhaul to FoldGetElemPtr to handle mixed array and struct refs.
llvm-svn: 1968
2002-03-24 03:37:53 +00:00
Vikram S. Adve 8bc420ec6a Use deterministic iterator for treeRoots.
llvm-svn: 1967
2002-03-24 03:36:52 +00:00
Vikram S. Adve 3228f9cc42 Change treeRoots data structure to make enumeration deterministic.
llvm-svn: 1962
2002-03-24 03:24:00 +00:00
Vikram S. Adve e5842b527d Constants are now added to the constant pool only when a load
instruction is actually generated for them.
Rename the different versions of SetMachineOperand.

llvm-svn: 1903
2002-03-18 03:33:43 +00:00
Vikram S. Adve d2c71c1d08 Use vector for machine instructions returned by GetInstructionsByRule.
Fix constants in instructions generated for Phi elimination.

llvm-svn: 1902
2002-03-18 03:31:54 +00:00
Chris Lattner 83d485b310 * Pull BasicBlock::pred_* and BasicBlock::succ_* out of BasicBlock.h and into
llvm/Support/CFG.h
* Make pred & succ iterators for intervals global functions
* Add #includes that are now neccesary because BasicBlock.h doesn't include
  InstrTypes.h anymore

llvm-svn: 1750
2002-02-12 22:39:50 +00:00
Chris Lattner 60a6591d83 Method.h no longer includes BasicBlock.h
Method::inst_* is now in llvm/Support/InstIterator.h
GraphTraits specializations for BasicBlock and Methods are now in llvm/Support/CFG.h

llvm-svn: 1746
2002-02-12 21:07:25 +00:00
Chris Lattner b86d191dbe * Switch over to cleaner TmpInstruction model
llvm-svn: 1648
2002-02-03 07:39:06 +00:00
Chris Lattner e59929f7b2 * Straighten out #includes
* Switch to MAchineCodeForInstruction model instead of MachineCodeForVMInstr

llvm-svn: 1647
2002-02-03 07:33:46 +00:00
Chris Lattner 0068ea26d7 * Swich to annotation model for MachineCodeForInstruction
llvm-svn: 1646
2002-02-03 07:31:41 +00:00
Chris Lattner 7f74a56e24 Changes to build successfully with GCC 3.02
llvm-svn: 1503
2002-01-20 22:54:45 +00:00
Vikram S. Adve cb2335f13f Eliminate all uses of memInst->getIndicesBROKEN().
llvm-svn: 1485
2001-12-15 00:36:32 +00:00
Chris Lattner 2413b160ec Renamed inst_const_iterator -> const_inst_iterator
Renamed op_const_iterator   -> const_op_iterator
Renamed PointerType::getValueType() -> PointerType::getElementType()

llvm-svn: 1408
2001-12-04 00:03:30 +00:00
Chris Lattner 3462ae3ad7 Rename ConstPoolVal -> Constant
Rename ConstPool*   -> Constant*
Rename ConstPoolVals.h -> ConstantVals.h

llvm-svn: 1407
2001-12-03 22:26:30 +00:00
Chris Lattner fb5ae02e1a Split the PHINode class out from the iOther.h file into the iPHINode.h file
llvm-svn: 1405
2001-12-03 18:02:31 +00:00
Chris Lattner 5de2204fe8 Create a new #include "Support/..." directory structure to move things
from "llvm/Support/..." that are not llvm dependant.

Move files and fix #includes

llvm-svn: 1400
2001-11-27 00:03:19 +00:00
Chris Lattner 63b52693c8 The old getIndices has been deprecated, because it no longer works. It now
is named getIndicesBROKEN() and shall be removed when the codebase is updated
to not call it

llvm-svn: 1338
2001-11-26 16:56:19 +00:00
Ruchira Sasanka ec62f24009 Added naming to inserted phi copy values - for easy debugging
llvm-svn: 1325
2001-11-15 20:46:40 +00:00
Ruchira Sasanka c5989f645b Changed phi elimination code
llvm-svn: 1311
2001-11-15 00:27:14 +00:00
Vikram S. Adve cba86d060b Don't assume constant operand can only be in position 1!
llvm-svn: 1308
2001-11-14 18:49:45 +00:00
Vikram S. Adve 65d54eb06e Idiotic error in last fix.
llvm-svn: 1306
2001-11-14 17:55:02 +00:00
Vikram S. Adve c1b534043f Don't need to load a NULL pointer constant from memory!
llvm-svn: 1305
2001-11-14 17:24:49 +00:00
Chris Lattner 1237e86597 Remove much cruft from the MemAccessInst instruction
llvm-svn: 1298
2001-11-14 11:27:58 +00:00
Ruchira Sasanka c189997516 For phi elimination, now we are generating only one instruction
using cpValue2Value instead of
passing vector to createCopyInstructionByType.

llvm-svn: 1272
2001-11-12 19:42:27 +00:00
Ruchira Sasanka 9f246e65d3 Added phi elimination code - not final
llvm-svn: 1264
2001-11-12 14:44:50 +00:00
Vikram S. Adve c53037205b Major overhaul of stack frame management.
llvm-svn: 1185
2001-11-08 04:47:06 +00:00
Chris Lattner 33d9cb9903 Minor method rename
llvm-svn: 1119
2001-11-04 08:08:34 +00:00
Vikram S. Adve 33ec4a3c23 Record constants that need to be emitted in the assembly code.
llvm-svn: 1010
2001-10-28 21:46:23 +00:00
Vikram S. Adve 3686293bd2 Cosmetic changes only.
llvm-svn: 946
2001-10-22 13:51:09 +00:00
Vikram S. Adve 6d19dc9080 1. Add a bottom-up pass on BURG trees that is used to fix constant operands.
Needs to be bottom up because constant values may be forward-substituted
   to their uses (i.e., into the parent in the BURG tree).
2. Move most of the constant-fixup code into machine-indepedent file
   InstrSelectionSupport.cpp.

llvm-svn: 859
2001-10-17 23:57:50 +00:00
Vikram S. Adve 192686db96 Machine-independent code generation routines used in instruction
selection.  These used to live in several different places before.

llvm-svn: 719
2001-10-10 20:50:43 +00:00
Vikram S. Adve c36a504cfe Moved code generation support routines to InstrSelectionSupport.cpp.
llvm-svn: 717
2001-10-10 20:49:07 +00:00
Chris Lattner da55810666 Commit more code over to new cast style
llvm-svn: 697
2001-10-02 03:41:24 +00:00
Chris Lattner 3856934386 Convert more code to use new style casts
Eliminate old style casts from value.h

llvm-svn: 696
2001-10-01 20:11:19 +00:00
Vikram S. Adve 813ffcc4f6 Change ! ( ...== ...) to !=.
llvm-svn: 680
2001-09-30 23:45:08 +00:00
Chris Lattner 3c6ce06243 Don't check for null on delete
llvm-svn: 624
2001-09-18 17:02:42 +00:00
Vikram S. Adve bb81dae651 Minor changes.
llvm-svn: 613
2001-09-18 12:56:28 +00:00
Vikram S. Adve 0c51cf0f51 Don't add instructions to subtree for Phi or Call.
Free tree nodes when done.
Avoid obscuring code with for_each and bind_obj :-)

llvm-svn: 612
2001-09-18 12:54:27 +00:00
Chris Lattner 0a823a062c This checkin represents some cleanup of the backend, implementing the following things:
1. The TargetMachine structure is free to decide the process a particular target uses to generate code.
2. All of the gooee details of the sparc backend are now localized in the lib/CodeGen/TargetMAchine/Sparc directory.  The Sparc.h file that is globally visible is just a stub.
3. The Sparc.h file that esxists now will dissapear entirely someday when we have multiple backends chosen by a factory of some sort.

llvm-svn: 559
2001-09-14 03:37:52 +00:00
Chris Lattner f8459bb199 More cleanups, preparing to revamp InstrForest to, among other things,
not leak all its allocated memory.

llvm-svn: 553
2001-09-12 16:34:03 +00:00
Chris Lattner 16dd09a7bb * Clean up InstrForest
* Fix ins sel problem, test case:
void "foo" (int *%x, int *%y)

begin
        seteq int *%x, %y
        ret void
end

llvm-svn: 552
2001-09-12 01:28:49 +00:00
Chris Lattner cc38da77e8 Eliminate 'BasicNode' from InstrForest.
llvm-svn: 551
2001-09-11 23:52:11 +00:00
Chris Lattner 706ee8e5ec Eliminate MainTreeNode function
llvm-svn: 550
2001-09-11 23:22:43 +00:00
Chris Lattner aeaba8a2ee Use predicate for Value type test
Use builtin casts

llvm-svn: 541
2001-09-10 20:09:50 +00:00
Chris Lattner 74d07801bf A file should always include it's private header file *FIRST* see the
coding guidelines

llvm-svn: 474
2001-09-07 17:15:18 +00:00
Vikram S. Adve 27713047f4 Remove source list.
llvm-svn: 402
2001-08-28 23:16:59 +00:00
Vikram S. Adve 8641f9dca0 Moved debug options declaration to header file, and moved
a function to MachineInstr.cpp.

llvm-svn: 393
2001-08-28 23:04:38 +00:00
Vikram S. Adve 527c8955de Simplify command line options, and add option for printing
machine instructions without debugging info.

llvm-svn: 340
2001-07-31 21:53:25 +00:00
Vikram S. Adve 1c73bc1c1f Generate tree nodes for Phi instructions.
llvm-svn: 337
2001-07-31 21:49:53 +00:00
Vikram S. Adve da0c7d89bc Record machine instructions in the vector for each basic block.
llvm-svn: 331
2001-07-30 18:48:43 +00:00
Vikram S. Adve 985b6e3d13 Eliminate unused function.
llvm-svn: 310
2001-07-28 04:15:45 +00:00
Chris Lattner ab0cc40796 CommandLine library cleanup. No longer use getValue/setValue, instead, just treat the commandline
args as the objects they represent and the "right thing" will happen

llvm-svn: 283
2001-07-23 19:27:24 +00:00
Chris Lattner 78a307b170 Eliminated the Unique class in favor of NonCopyable and NonCopyableV
llvm-svn: 280
2001-07-23 18:26:21 +00:00
Chris Lattner e2472bbf6c Moved inline/llvm/Tools/* to include/llvm/Support/*
llvm-svn: 279
2001-07-23 17:46:59 +00:00
Chris Lattner 44187dbff1 Clean up hash table usage
Remove opaque pointer used for C compatibility which isn't an issue

llvm-svn: 275
2001-07-23 03:50:57 +00:00
Chris Lattner d8f1cc98e8 Removal of the redundant CompileContext wrapper
llvm-svn: 274
2001-07-23 03:09:03 +00:00
Chris Lattner 0af2464a78 Large scale changes to implement new command line argument facility
llvm-svn: 272
2001-07-23 02:35:57 +00:00
Chris Lattner 9c0f8f24e0 Privatize LLCOptions. It had no business being visible to the entire
program.

llvm-svn: 267
2001-07-22 04:40:02 +00:00
Chris Lattner b299068101 Eliminate lots of unnecessary #includes and forward decls
there are probably more to kill

llvm-svn: 261
2001-07-21 23:24:48 +00:00
Chris Lattner 7769970e16 Eliminate many unneccesary #includes
llvm-svn: 260
2001-07-21 22:59:56 +00:00
Chris Lattner eb68f3263c Remove unneccesary #includes
llvm-svn: 258
2001-07-21 22:53:35 +00:00
Chris Lattner dd511760d9 Renamed include/llvm/Codegen to include/llvm/CodeGen
llvm-svn: 253
2001-07-21 20:58:30 +00:00
Vikram S. Adve ab9e557102 Instruction selection via pattern matching on instruction trees using BURG.
llvm-svn: 231
2001-07-21 12:41:50 +00:00