16cbd41c21 
								
							 
						 
						
							
							
								
								Implement MachineInstrInfo interface  
							
							... 
							
							
							
							llvm-svn: 4394 
							
						 
						
							2002-10-29 17:43:19 +00:00  
				
					
						
							
							
								 
						
							
								f4b122dbc5 
								
							 
						 
						
							
							
								
								Switch to different flag set  
							
							... 
							
							
							
							llvm-svn: 4393 
							
						 
						
							2002-10-29 17:42:40 +00:00  
				
					
						
							
							
								 
						
							
								268d600a88 
								
							 
						 
						
							
							
								
								Move TargetInstrDescriptors to MachineInstrInfo.cpp  
							
							... 
							
							
							
							llvm-svn: 4391 
							
						 
						
							2002-10-29 17:37:48 +00:00  
				
					
						
							
							
								 
						
							
								52ce69b8e2 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 4390 
							
						 
						
							2002-10-29 17:35:41 +00:00  
				
					
						
							
							
								 
						
							
								01efae0bbf 
								
							 
						 
						
							
							
								
								MachineInstrInfo doesn't need a TargetMachine  
							
							... 
							
							
							
							llvm-svn: 4372 
							
						 
						
							2002-10-29 15:45:20 +00:00  
				
					
						
							
							
								 
						
							
								5cbb8183d6 
								
							 
						 
						
							
							
								
								Don't build X86 target until it builds properly again  
							
							... 
							
							
							
							llvm-svn: 4369 
							
						 
						
							2002-10-28 23:56:41 +00:00  
				
					
						
							
							
								 
						
							
								910b82f042 
								
							 
						 
						
							
							
								
								Seperate code out of TargetMachine into MachineInstrInfo  
							
							... 
							
							
							
							llvm-svn: 4368 
							
						 
						
							2002-10-28 23:55:33 +00:00  
				
					
						
							
							
								 
						
							
								1303f2f057 
								
							 
						 
						
							
							
								
								Initial stab at MachineInstr'ication  
							
							... 
							
							
							
							llvm-svn: 4367 
							
						 
						
							2002-10-28 23:55:19 +00:00  
				
					
						
							
							
								 
						
							
								cbe6385890 
								
							 
						 
						
							
							
								
								Use BuildMI instead of explicit code.  
							
							... 
							
							
							
							llvm-svn: 4362 
							
						 
						
							2002-10-28 21:43:57 +00:00  
				
					
						
							
							
								 
						
							
								5c7d638208 
								
							 
						 
						
							
							
								
								Remove all traces of the "Opcode Mask" field in the MachineInstr class  
							
							... 
							
							
							
							llvm-svn: 4359 
							
						 
						
							2002-10-28 21:17:20 +00:00  
				
					
						
							
							
								 
						
							
								3d736950ea 
								
							 
						 
						
							
							
								
								Fix minor bug  
							
							... 
							
							
							
							llvm-svn: 4355 
							
						 
						
							2002-10-28 20:11:17 +00:00  
				
					
						
							
							
								 
						
							
								9bebf832c8 
								
							 
						 
						
							
							
								
								Don't pass default args  
							
							... 
							
							
							
							llvm-svn: 4354 
							
						 
						
							2002-10-28 20:10:56 +00:00  
				
					
						
							
							
								 
						
							
								d5b45791a4 
								
							 
						 
						
							
							
								
								Fixed spelling and grammar.  
							
							... 
							
							
							
							llvm-svn: 4353 
							
						 
						
							2002-10-28 20:01:52 +00:00  
				
					
						
							
							
								 
						
							
								181ea4a265 
								
							 
						 
						
							
							
								
								Rewrote uses of deprecated `MachineFunction::get(BasicBlock *BB)'.  
							
							... 
							
							
							
							llvm-svn: 4352 
							
						 
						
							2002-10-28 20:01:13 +00:00  
				
					
						
							
							
								 
						
							
								6be5e92526 
								
							 
						 
						
							
							
								
								Replaced uses of deprecated `MachineFunction::get(BasicBlock *BB)'.  
							
							... 
							
							
							
							llvm-svn: 4351 
							
						 
						
							2002-10-28 20:00:31 +00:00  
				
					
						
							
							
								 
						
							
								780090bbf1 
								
							 
						 
						
							
							
								
								Don't bother passing in default value  
							
							... 
							
							
							
							llvm-svn: 4347 
							
						 
						
							2002-10-28 19:46:25 +00:00  
				
					
						
							
							
								 
						
							
								e3aa50d6b7 
								
							 
						 
						
							
							
								
								Fixes to work with updated RegAlloc  
							
							... 
							
							
							
							llvm-svn: 4345 
							
						 
						
							2002-10-28 19:32:07 +00:00  
				
					
						
							
							
								 
						
							
								e1a3de779e 
								
							 
						 
						
							
							
								
								Make sched class unsigned  
							
							... 
							
							
							
							llvm-svn: 4336 
							
						 
						
							2002-10-28 04:59:43 +00:00  
				
					
						
							
							
								 
						
							
								6a30b02b1d 
								
							 
						 
						
							
							
								
								Rename the redundant MachineOperand::getOperandType() to MachineOperand::getType()  
							
							... 
							
							
							
							llvm-svn: 4331 
							
						 
						
							2002-10-28 04:45:29 +00:00  
				
					
						
							
							
								 
						
							
								2a3bd1c562 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 4323 
							
						 
						
							2002-10-28 02:01:37 +00:00  
				
					
						
							
							
								 
						
							
								8710aab04c 
								
							 
						 
						
							
							
								
								Rename MachineCodeForBasicBlock to MachineBasicBlock  
							
							... 
							
							
							
							llvm-svn: 4318 
							
						 
						
							2002-10-28 01:41:47 +00:00  
				
					
						
							
							
								 
						
							
								6d8a6c645c 
								
							 
						 
						
							
							
								
								Move machine code generation/destruction passes out of Sparc.cpp because  
							
							... 
							
							
							
							they are generic
llvm-svn: 4310 
							
						 
						
							2002-10-28 01:12:41 +00:00  
				
					
						
							
							
								 
						
							
								e94db67c4f 
								
							 
						 
						
							
							
								
								Move addPassesToEmitAssembly from TargetMachine to UltraSparc because it  
							
							... 
							
							
							
							really is sparc specific.
llvm-svn: 4308 
							
						 
						
							2002-10-28 01:03:43 +00:00  
				
					
						
							
							
								 
						
							
								7ae7f84cf3 
								
							 
						 
						
							
							
								
								Changed `MachineCodeForMethod' to `MachineFunction'.  
							
							... 
							
							
							
							llvm-svn: 4301 
							
						 
						
							2002-10-28 00:28:31 +00:00  
				
					
						
							
							
								 
						
							
								52c2d10a19 
								
							 
						 
						
							
							
								
								Remove dead fixme  
							
							... 
							
							
							
							llvm-svn: 4300 
							
						 
						
							2002-10-27 21:23:43 +00:00  
				
					
						
							
							
								 
						
							
								7d3e5dbf2b 
								
							 
						 
						
							
							
								
								Instruction select constant arguments correctly  
							
							... 
							
							
							
							llvm-svn: 4297 
							
						 
						
							2002-10-27 21:16:59 +00:00  
				
					
						
							
							
								 
						
							
								407582dc5a 
								
							 
						 
						
							
							
								
								Add instruction definitions for mov r, imm instructions  
							
							... 
							
							
							
							llvm-svn: 4296 
							
						 
						
							2002-10-27 21:16:44 +00:00  
				
					
						
							
							
								 
						
							
								fb34004733 
								
							 
						 
						
							
							
								
								change ++ to +1 when using random access iterators  
							
							... 
							
							
							
							llvm-svn: 4292 
							
						 
						
							2002-10-27 19:09:51 +00:00  
				
					
						
							
							
								 
						
							
								d92fb0058b 
								
							 
						 
						
							
							
								
								Initial checkin of X86 backend.  
							
							... 
							
							
							
							We can instruction select exactly one instruction 'ret void'.  Wow.
llvm-svn: 4284 
							
						 
						
							2002-10-25 22:55:53 +00:00  
				
					
						
							
							
								 
						
							
								517005c760 
								
							 
						 
						
							
							
								
								Build the X86 target as well  
							
							... 
							
							
							
							llvm-svn: 4283 
							
						 
						
							2002-10-25 22:55:05 +00:00  
				
					
						
							
							
								 
						
							
								d6786b5f59 
								
							 
						 
						
							
							
								
								Prune #includes  
							
							... 
							
							
							
							llvm-svn: 4277 
							
						 
						
							2002-10-25 02:01:33 +00:00  
				
					
						
							
							
								 
						
							
								1e5e3f071e 
								
							 
						 
						
							
							
								
								Fix misspelling  
							
							... 
							
							
							
							llvm-svn: 4276 
							
						 
						
							2002-10-25 01:43:26 +00:00  
				
					
						
							
							
								 
						
							
								42c66c4887 
								
							 
						 
						
							
							
								
								Minor cleanups  
							
							... 
							
							
							
							Make sure to have a pass name
llvm-svn: 4268 
							
						 
						
							2002-10-23 01:12:01 +00:00  
				
					
						
							
							
								 
						
							
								ce64eddb71 
								
							 
						 
						
							
							
								
								- Two minor improvements to the MachineInstr class to reduce footprint and  
							
							... 
							
							
							
							overhead: Merge 3 parallel vectors into 1, change regsUsed hash_set to be a
    bitvector.  Sped up LLC a little less than 10% in a debug build!
llvm-svn: 4261 
							
						 
						
							2002-10-22 23:16:21 +00:00  
				
					
						
							
							
								 
						
							
								aaf6ee80de 
								
							 
						 
						
							
							
								
								Make sure to escape \'s when they are output  
							
							... 
							
							
							
							llvm-svn: 4179 
							
						 
						
							2002-10-15 19:56:24 +00:00  
				
					
						
							
							
								 
						
							
								5156bba4c7 
								
							 
						 
						
							
							
								
								- Add an endianness field to the TargetData datastructure  
							
							... 
							
							
							
							llvm-svn: 4174 
							
						 
						
							2002-10-14 22:41:13 +00:00  
				
					
						
							
							
								 
						
							
								92ccbb9f27 
								
							 
						 
						
							
							
								
								Print "circular" warning message only in debug mode.  
							
							... 
							
							
							
							llvm-svn: 4170 
							
						 
						
							2002-10-14 16:32:49 +00:00  
				
					
						
							
							
								 
						
							
								4049a9a5de 
								
							 
						 
						
							
							
								
								Removed misleading const keyword.  
							
							... 
							
							
							
							llvm-svn: 4169 
							
						 
						
							2002-10-14 16:32:24 +00:00  
				
					
						
							
							
								 
						
							
								74cb2d2503 
								
							 
						 
						
							
							
								
								Allow emission of names that start with an underscore.  This is needed to  
							
							... 
							
							
							
							interface with code that uses symbols in the ansi-c protected namespace.  In
most cases this comes from system header files, such as stdio.h.  In particular,
without this change, a reference to the __iob symbol is mangled into ll_iob,
which is not resolved by libc.
llvm-svn: 4165 
							
						 
						
							2002-10-14 06:14:18 +00:00  
				
					
						
							
							
								 
						
							
								a202c0dbfa 
								
							 
						 
						
							
							
								
								Don't try to compute the size of an "array" element if the index is 0:  
							
							... 
							
							
							
							the size may be unknown, and is not needed.
llvm-svn: 4153 
							
						 
						
							2002-10-13 21:47:44 +00:00  
				
					
						
							
							
								 
						
							
								69ce8674b5 
								
							 
						 
						
							
							
								
								- Rename Instruction::First*Op to *OpsBegin, and Num*Ops to *OpsEnd to  
							
							... 
							
							
							
							reflect the fact that it's a range being defined.
llvm-svn: 4147 
							
						 
						
							2002-10-13 19:39:16 +00:00  
				
					
						
							
							
								 
						
							
								d77030bd76 
								
							 
						 
						
							
							
								
								Use vectors instead of hash_maps for issueGaps and conflictLists.  
							
							... 
							
							
							
							These hash lookups were a major sink of time because they happen so often!
llvm-svn: 4136 
							
						 
						
							2002-10-13 00:37:46 +00:00  
				
					
						
							
							
								 
						
							
								05ee0819a7 
								
							 
						 
						
							
							
								
								Run LICM before GCSE!  
							
							... 
							
							
							
							llvm-svn: 4135 
							
						 
						
							2002-10-13 00:34:10 +00:00  
				
					
						
							
							
								 
						
							
								10d8164013 
								
							 
						 
						
							
							
								
								Several major fixes, particularly in emitting constant aggregates:  
							
							... 
							
							
							
							(1) Padding bytes between structure fields (for alignment) were never
    being emitted into the constant pool so the layout did not match!
(2) In printing constants, structures containing structures or arrays
    were never handled.
(3) Support new model for external/uninitialized/initialized globals.
    Uninitialized globals are no longer emitted since they are external.
    Initialized globals may go either in .bss or in .data.
llvm-svn: 4134 
							
						 
						
							2002-10-13 00:32:18 +00:00  
				
					
						
							
							
								 
						
							
								78044fbc8e 
								
							 
						 
						
							
							
								
								Don't use %l0 for large operands to a SAVE since it is needed *before* SAVE!  
							
							... 
							
							
							
							We now use %g1 instead since that is shared and volatile.
llvm-svn: 4133 
							
						 
						
							2002-10-13 00:24:06 +00:00  
				
					
						
							
							
								 
						
							
								f4f7292b4e 
								
							 
						 
						
							
							
								
								Don't mark JMPLCALL and JMPLRET as branches.  
							
							... 
							
							
							
							llvm-svn: 4132 
							
						 
						
							2002-10-13 00:22:32 +00:00  
				
					
						
							
							
								 
						
							
								d2dc60e5d9 
								
							 
						 
						
							
							
								
								(1) Try to evaluate constant when multiplying 2 constants.  
							
							... 
							
							
							
							(2) Use intelligent multiply selection code for array allocas.
(3) Don't use cache padding for alloca'd stack slots!
(4) Bug fix in handling call arguments: was not copying sixth FP arg
    to int reg. when calling a function with no prototype.
llvm-svn: 4130 
							
						 
						
							2002-10-13 00:18:57 +00:00  
				
					
						
							
							
								 
						
							
								d00beecb59 
								
							 
						 
						
							
							
								
								Eliminate duplicate target pointer in SparcRegInfo.  
							
							... 
							
							
							
							llvm-svn: 4129 
							
						 
						
							2002-10-13 00:06:04 +00:00  
				
					
						
							
							
								 
						
							
								879eac9fa1 
								
							 
						 
						
							
							
								
								Eliminate duplicate target pointer.  Also add a few assertions.  
							
							... 
							
							
							
							llvm-svn: 4128 
							
						 
						
							2002-10-13 00:05:30 +00:00  
				
					
						
							
							
								 
						
							
								ea31dc707f 
								
							 
						 
						
							
							
								
								Make sure to handle small negative values hiding as large unsigned longs --  
							
							... 
							
							
							
							this is a common case created by the front-end.
llvm-svn: 4127 
							
						 
						
							2002-10-13 00:04:26 +00:00  
				
					
						
							
							
								 
						
							
								4ef6cce821 
								
							 
						 
						
							
							
								
								Major fix: extract ConstantExpr nodes and decompose them into symbolic  
							
							... 
							
							
							
							instructions so that (a) constant folding is done automatically before
code generation, and (b) selection does not have to deal with them.
Also, check for ConstantPointerRefs in additional to GlobalValues
when creating a GEP to load a global address.
llvm-svn: 4126 
							
						 
						
							2002-10-13 00:01:57 +00:00  
				
					
						
							
							
								 
						
							
								d76d82b40f 
								
							 
						 
						
							
							
								
								Return address register should be marked as "result" for the JMPL instruction  
							
							... 
							
							
							
							since it is defined by the instruction.
llvm-svn: 3966 
							
						 
						
							2002-09-28 17:00:15 +00:00  
				
					
						
							
							
								 
						
							
								6d1036d41b 
								
							 
						 
						
							
							
								
								Live ranges for Return value and return address of a Call are no longer  
							
							... 
							
							
							
							created here.  Instead they are created in LiveRangeInfo.cpp.  This
simplifies the code here quite a bit.
llvm-svn: 3965 
							
						 
						
							2002-09-28 16:59:05 +00:00  
				
					
						
							
							
								 
						
							
								cce628aeaf 
								
							 
						 
						
							
							
								
								Simplified code that handles call args and rets, so it no longer  
							
							... 
							
							
							
							needs the RegClass list to be passed in.
llvm-svn: 3964 
							
						 
						
							2002-09-28 16:56:59 +00:00  
				
					
						
							
							
								 
						
							
								4bb9866dc5 
								
							 
						 
						
							
							
								
								Simplify Call translation slightly.  
							
							... 
							
							
							
							llvm-svn: 3963 
							
						 
						
							2002-09-28 16:55:41 +00:00  
				
					
						
							
							
								 
						
							
								34d16d64b0 
								
							 
						 
						
							
							
								
								Overhaul integer conversions to match C++ ISO standard.  
							
							... 
							
							
							
							Don't allow direct FP-to-uint conversion (must be eliminated by preselection).
Address arithmetic for arrays is now entirely 64-bit so no sign-ext needed.
llvm-svn: 3961 
							
						 
						
							2002-09-27 14:33:08 +00:00  
				
					
						
							
							
								 
						
							
								40e2347b90 
								
							 
						 
						
							
							
								
								Modify operand order for Create{Sign,Zero}ExtensionInstructions.  
							
							... 
							
							
							
							llvm-svn: 3960 
							
						 
						
							2002-09-27 14:29:45 +00:00  
				
					
						
							
							
								 
						
							
								d238de02c7 
								
							 
						 
						
							
							
								
								Bug fix: some redundant copies were not being deleted after detection :-|.  
							
							... 
							
							
							
							llvm-svn: 3959 
							
						 
						
							2002-09-27 14:27:37 +00:00  
				
					
						
							
							
								 
						
							
								46aeb8c7c2 
								
							 
						 
						
							
							
								
								Decompose FP-to-UInt casts into FP-to-ULong-toUInt.  
							
							... 
							
							
							
							llvm-svn: 3957 
							
						 
						
							2002-09-27 14:24:45 +00:00  
				
					
						
							
							
								 
						
							
								09cfdcb1a3 
								
							 
						 
						
							
							
								
								Convert TargetData to be an ImmutablePass  
							
							... 
							
							
							
							llvm-svn: 3927 
							
						 
						
							2002-09-25 23:46:55 +00:00  
				
					
						
							
							
								 
						
							
								8e6e1816c0 
								
							 
						 
						
							
							
								
								Put intermediate source files in a subdirectory here instead of with  
							
							... 
							
							
							
							object files.  Also,
llvm-svn: 3884 
							
						 
						
							2002-09-23 13:12:28 +00:00  
				
					
						
							
							
								 
						
							
								7765a4a4f6 
								
							 
						 
						
							
							
								
								Disable reassociation pass in LLC until it is fixed.  
							
							... 
							
							
							
							llvm-svn: 3883 
							
						 
						
							2002-09-23 12:55:50 +00:00  
				
					
						
							
							
								 
						
							
								4b6bd16c2b 
								
							 
						 
						
							
							
								
								Changed codegen to add 2 empty slots at the top of stack using StackSlots pass  
							
							... 
							
							
							
							llvm-svn: 3873 
							
						 
						
							2002-09-21 05:01:21 +00:00  
				
					
						
							
							
								 
						
							
								ca15c99c4d 
								
							 
						 
						
							
							
								
								Initial version: it adds 2 empty slots at the top of stack  
							
							... 
							
							
							
							llvm-svn: 3872 
							
						 
						
							2002-09-21 04:58:26 +00:00  
				
					
						
							
							
								 
						
							
								2f4d556d21 
								
							 
						 
						
							
							
								
								Add peephole optimization pass at the end of code generation.  
							
							... 
							
							
							
							llvm-svn: 3846 
							
						 
						
							2002-09-20 00:52:43 +00:00  
				
					
						
							
							
								 
						
							
								bbf45f6960 
								
							 
						 
						
							
							
								
								Added class MachineOptInfo as interface to target-specific  
							
							... 
							
							
							
							routines supporting machine code optimization.
Also added method MachineInstrInfo::getNOPOpCode().
llvm-svn: 3845 
							
						 
						
							2002-09-20 00:52:09 +00:00  
				
					
						
							
							
								 
						
							
								5e1c434572 
								
							 
						 
						
							
							
								
								Peephole optimization pass on final machine code.  
							
							... 
							
							
							
							llvm-svn: 3840 
							
						 
						
							2002-09-20 00:42:11 +00:00  
				
					
						
							
							
								 
						
							
								e9ac29b475 
								
							 
						 
						
							
							
								
								Moving these files from Code/PreSelection to here.  
							
							... 
							
							
							
							Original logs for PreSelection.cpp:
  revision 1.2
  date: 2002/09/17 23:50:32;  author: lattner;  state: Exp;  lines: +1 -3
  Don't put default parameter values into .cpp files, it breaks 3.x compilers
  revision 1.1
  date: 2002/09/16 15:31:13;  author: vadve;  state: Exp;
  New preselection pass that specializes LLVM code for a target machine,
  while remaining in legal portable LLVM form and preserving type
  information and type safety.
llvm-svn: 3838 
							
						 
						
							2002-09-20 00:29:28 +00:00  
				
					
						
							
							
								 
						
							
								ff0248c47c 
								
							 
						 
						
							
							
								
								Removed debug info printing  
							
							... 
							
							
							
							llvm-svn: 3778 
							
						 
						
							2002-09-17 20:24:46 +00:00  
				
					
						
							
							
								 
						
							
								b048d6633d 
								
							 
						 
						
							
							
								
								Use ulong instead of uint for size expressions.  
							
							... 
							
							
							
							llvm-svn: 3744 
							
						 
						
							2002-09-16 15:56:45 +00:00  
				
					
						
							
							
								 
						
							
								fff5ffde27 
								
							 
						 
						
							
							
								
								Add methods to query about the representation of LLVM quantities (e.g.,  
							
							... 
							
							
							
							constants).  Useful for target-dependent LLVM transformations like
Preselection.
llvm-svn: 3743 
							
						 
						
							2002-09-16 15:56:01 +00:00  
				
					
						
							
							
								 
						
							
								8cbdbd8e2e 
								
							 
						 
						
							
							
								
								Don't print out global names unnecesssarily.  Also, expose pass  
							
							... 
							
							
							
							constructors so passes can be inserted by TargetMachine.cpp.
llvm-svn: 3742 
							
						 
						
							2002-09-16 15:54:02 +00:00  
				
					
						
							
							
								 
						
							
								36d3e03fa0 
								
							 
						 
						
							
							
								
								Move all the code that creates code generation passes from Sparc.cpp to  
							
							... 
							
							
							
							TargetMachine.cpp, since it is entirely machine-independent.
Also, add options to disable optional back-end passes (preselection and
instr. scheduling).
llvm-svn: 3740 
							
						 
						
							2002-09-16 15:39:26 +00:00  
				
					
						
							
							
								 
						
							
								834885fb82 
								
							 
						 
						
							
							
								
								Again, including Module makes Function unnecessary.  
							
							... 
							
							
							
							llvm-svn: 3714 
							
						 
						
							2002-09-14 02:07:43 +00:00  
				
					
						
							
							
								 
						
							
								e314bf5264 
								
							 
						 
						
							
							
								
								- Change getelementptr instruction to use long indexes instead of uint  
							
							... 
							
							
							
							indexes for sequential types.
llvm-svn: 3683 
							
						 
						
							2002-09-11 01:21:35 +00:00  
				
					
						
							
							
								 
						
							
								136dab7d86 
								
							 
						 
						
							
							
								
								- Change getelementptr instruction to use long indexes instead of uint  
							
							... 
							
							
							
							indexes for sequential types.
llvm-svn: 3682 
							
						 
						
							2002-09-11 01:21:33 +00:00  
				
					
						
							
							
								 
						
							
								d50fb11d18 
								
							 
						 
						
							
							
								
								Silly bug fix: Machine code vector could be empty for a no-op cast instruction,  
							
							... 
							
							
							
							e.g., cast double to double.
llvm-svn: 3633 
							
						 
						
							2002-09-09 14:54:21 +00:00  
				
					
						
							
							
								 
						
							
								f5d585d185 
								
							 
						 
						
							
							
								
								Add new function UltraSparcInstrInfo::CreateZeroExtensionInstructions.  
							
							... 
							
							
							
							llvm-svn: 3581 
							
						 
						
							2002-09-05 18:34:31 +00:00  
				
					
						
							
							
								 
						
							
								549489aa77 
								
							 
						 
						
							
							
								
								Bug fixes in casting between floats and ints smaller than 64 bits.  
							
							... 
							
							
							
							Add UltraSparcInstrInfo::CreateZeroExtensionInstructions to help with that.
llvm-svn: 3580 
							
						 
						
							2002-09-05 18:33:59 +00:00  
				
					
						
							
							
								 
						
							
								7bc45123d3 
								
							 
						 
						
							
							
								
								-- Use size of pointer element type instead of pointer type in array offsets!  
							
							... 
							
							
							
							-- A few bug fixes in casting between floats and ints.
-- Use SRL reg, 0 instead of AND reg, 0xffffffff to clear high 32 bits.
llvm-svn: 3579 
							
						 
						
							2002-09-05 18:32:13 +00:00  
				
					
						
							
							
								 
						
							
								93407286ed 
								
							 
						 
						
							
							
								
								-- Bug fix: use byte offsets not typed offsets in output assembly!  
							
							... 
							
							
							
							-- Add support for ConstantExpr constants (only cast and add operators so far)
-- Avoid generating label Bbss.bss, which sometimes came out twice.
llvm-svn: 3578 
							
						 
						
							2002-09-05 18:28:10 +00:00  
				
					
						
							
							
								 
						
							
								b0b412e66e 
								
							 
						 
						
							
							
								
								- Renamed Type::isIntegral() to Type::isInteger()  
							
							... 
							
							
							
							- Added new method Type::isIntegral() that is the same as isInteger, but
    also accepts bool.
llvm-svn: 3574 
							
						 
						
							2002-09-03 01:08:28 +00:00  
				
					
						
							
							
								 
						
							
								bcba516097 
								
							 
						 
						
							
							
								
								moved this file from lib/Reoptimizer/Mapping  
							
							... 
							
							
							
							llvm-svn: 3519 
							
						 
						
							2002-08-27 22:47:33 +00:00  
				
					
						
							
							
								 
						
							
								f246131208 
								
							 
						 
						
							
							
								
								Added getFunctionInfo and MappingInfoForFunction pass, and fixed the earlier error in compiling  
							
							... 
							
							
							
							llvm-svn: 3513 
							
						 
						
							2002-08-27 16:45:17 +00:00  
				
					
						
							
							
								 
						
							
								bee7297f26 
								
							 
						 
						
							
							
								
								LoadIdx non-terminal no longer needed.  
							
							... 
							
							
							
							llvm-svn: 3499 
							
						 
						
							2002-08-24 20:58:04 +00:00  
				
					
						
							
							
								 
						
							
								541862fbf3 
								
							 
						 
						
							
							
								
								Sign-extend values used to index arrays (and Simplify  
							
							... 
							
							
							
							SetOperandsForMemInstr significantly).  Load and Store
no longer have any indices.  Eliminate spurious sign-extension
on a cast to float/double.
llvm-svn: 3498 
							
						 
						
							2002-08-24 20:56:53 +00:00  
				
					
						
							
							
								 
						
							
								9068efdce6 
								
							 
						 
						
							
							
								
								Fix sign-extension: it needs to happen *after* multiplying by type size.  
							
							... 
							
							
							
							llvm-svn: 3497 
							
						 
						
							2002-08-24 14:44:58 +00:00  
				
					
						
							
							
								 
						
							
								b342572667 
								
							 
						 
						
							
							
								
								Simplify previous hack slightly.  
							
							... 
							
							
							
							llvm-svn: 3490 
							
						 
						
							2002-08-23 03:21:01 +00:00  
				
					
						
							
							
								 
						
							
								1c84243d47 
								
							 
						 
						
							
							
								
								Force sign-extension for uint array indexes from 32-bit to 64-bits  
							
							... 
							
							
							
							since uint is not normally sign-extended when casting to uint64_t.
llvm-svn: 3489 
							
						 
						
							2002-08-23 02:55:51 +00:00  
				
					
						
							
							
								 
						
							
								02fe752fbd 
								
							 
						 
						
							
							
								
								Eliminated the MemAccessInst class, folding contents into GEP class.  
							
							... 
							
							
							
							llvm-svn: 3488 
							
						 
						
							2002-08-22 23:37:24 +00:00  
				
					
						
							
							
								 
						
							
								f18177ea01 
								
							 
						 
						
							
							
								
								Change code to not use the copyOperands method added to User.  It's now  
							
							... 
							
							
							
							more efficient to boot.
llvm-svn: 3453 
							
						 
						
							2002-08-22 15:57:58 +00:00  
				
					
						
							
							
								 
						
							
								a6100862d3 
								
							 
						 
						
							
							
								
								Fix two resource names.  
							
							... 
							
							
							
							llvm-svn: 3443 
							
						 
						
							2002-08-22 02:58:57 +00:00  
				
					
						
							
							
								 
						
							
								c3a5e4e0f8 
								
							 
						 
						
							
							
								
								Add AsmPrinter::ConstantExprToString, which writes out a ConstantExpr  
							
							... 
							
							
							
							as an expression.
llvm-svn: 3442 
							
						 
						
							2002-08-22 02:58:36 +00:00  
				
					
						
							
							
								 
						
							
								2d85a9976a 
								
							 
						 
						
							
							
								
								Eliminate bool, boolreg and boolconst nonterminals, and just use  
							
							... 
							
							
							
							reg and Constant instead.
llvm-svn: 3441 
							
						 
						
							2002-08-22 02:56:10 +00:00  
				
					
						
							
							
								 
						
							
								e56681c891 
								
							 
						 
						
							
							
								
								Change rules for Not, since it is now implemented as Xor(reg,11..1).  
							
							... 
							
							
							
							Eliminate bool, boolreg and boolconst nonterminals, and just use
reg and Constant instead.
llvm-svn: 3440 
							
						 
						
							2002-08-22 02:55:21 +00:00  
				
					
						
							
							
								 
						
							
								74469f858f 
								
							 
						 
						
							
							
								
								This case JUST handles constantpointer nulls, not all pointers.  
							
							... 
							
							
							
							llvm-svn: 3402 
							
						 
						
							2002-08-20 17:02:48 +00:00  
				
					
						
							
							
								 
						
							
								caed269085 
								
							 
						 
						
							
							
								
								Revise code generation for unary Not (boolean and bitwise), which is  
							
							... 
							
							
							
							no longer a separate instruction but is instead implemented with XOR.
llvm-svn: 3342 
							
						 
						
							2002-08-15 14:17:37 +00:00  
				
					
						
							
							
								 
						
							
								a3efa260ea 
								
							 
						 
						
							
							
								
								Bug fix in TargetData::getIndexedOffset: We were using the pointer  
							
							... 
							
							
							
							type instead of the element type for the element size for arrays.
llvm-svn: 3302 
							
						 
						
							2002-08-13 18:17:56 +00:00  
				
					
						
							
							
								 
						
							
								4f729affe6 
								
							 
						 
						
							
							
								
								Several bug fixes in casting to signed int values.  
							
							... 
							
							
							
							llvm-svn: 3301 
							
						 
						
							2002-08-13 18:04:08 +00:00  
				
					
						
							
							
								 
						
							
								3a5a29faf4 
								
							 
						 
						
							
							
								
								Handle small unsigned results correctly by clearing high bits.  
							
							... 
							
							
							
							Bug fixes in casting to signed int values.
llvm-svn: 3297 
							
						 
						
							2002-08-13 17:40:54 +00:00  
				
					
						
							
							
								 
						
							
								9c9e548596 
								
							 
						 
						
							
							
								
								Build correctly in the face of /shared.  
							
							... 
							
							
							
							-Chris
llvm-svn: 3296 
							
						 
						
							2002-08-12 22:09:44 +00:00  
				
					
						
							
							
								 
						
							
								56e9166b84 
								
							 
						 
						
							
							
								
								- Clean up interface to Sparc register handling a bit:  
							
							... 
							
							
							
							- Eliminate Sparc*Order classes, moving contents to Sparc*Class classes
   - get register name methods now return const char * const pointers instead
     of std::string's.
   - Added file header comments to SparcRegClassInfo.(cpp|h)
   - Moved BIG constant arrays out of SparcRegClassInfo.h, into
     SparcRegInfo.cpp.  This should allow a LOT of std::string constructors to
     not have to be called.
llvm-svn: 3295 
							
						 
						
							2002-08-12 21:25:05 +00:00  
				
					
						
							
							
								 
						
							
								959a5fbf8e 
								
							 
						 
						
							
							
								
								* Removed extraneous #includes  
							
							... 
							
							
							
							* Fixed file headers to be consistent with the rest of LLVM
* Other minor fixes
llvm-svn: 3278 
							
						 
						
							2002-08-09 20:08:06 +00:00  
				
					
						
							
							
								 
						
							
								02e7a86fec 
								
							 
						 
						
							
							
								
								* Removed extraneous #includes  
							
							... 
							
							
							
							* Fixed file headers to be consistent with the rest of LLVM
* Other minor fixes
llvm-svn: 3277 
							
						 
						
							2002-08-09 20:08:03 +00:00  
				
					
						
							
							
								 
						
							
								c93df6bf22 
								
							 
						 
						
							
							
								
								Merge three loops into one.  
							
							... 
							
							
							
							llvm-svn: 3259 
							
						 
						
							2002-08-07 21:39:48 +00:00  
				
					
						
							
							
								 
						
							
								e64e62eff9 
								
							 
						 
						
							
							
								
								Fix breakage in the build  
							
							... 
							
							
							
							llvm-svn: 3258 
							
						 
						
							2002-08-07 21:39:39 +00:00  
				
					
						
							
							
								 
						
							
								428a0ba612 
								
							 
						 
						
							
							
								
								added Mapping and Function Pass  
							
							... 
							
							
							
							llvm-svn: 3251 
							
						 
						
							2002-08-05 23:23:19 +00:00  
				
					
						
							
							
								 
						
							
								482ab44175 
								
							 
						 
						
							
							
								
								Bug fix in CreateCodeToLoadConst(): use sign of dest, not operand,  
							
							... 
							
							
							
							in choosing how to create int-set instructions.
llvm-svn: 3248 
							
						 
						
							2002-08-04 20:55:37 +00:00  
				
					
						
							
							
								 
						
							
								71895b28cc 
								
							 
						 
						
							
							
								
								Bug fix in TargetData::getIndexedOffset(): handle struct offset  
							
							... 
							
							
							
							after array offset correctly.  The type was not being updated for
array offsets!
llvm-svn: 3246 
							
						 
						
							2002-08-04 20:52:39 +00:00  
				
					
						
							
							
								 
						
							
								b4a9685872 
								
							 
						 
						
							
							
								
								Bug fix in SetOperandsForMemInstr: handle leading zeros correctly  
							
							... 
							
							
							
							when folding or not folding GEPs.
llvm-svn: 3245 
							
						 
						
							2002-08-04 20:51:05 +00:00  
				
					
						
							
							
								 
						
							
								b430c3f395 
								
							 
						 
						
							
							
								
								Fix compilation problem.  IsIndexZero doesn't exist, use IsZero instead.  
							
							... 
							
							
							
							llvm-svn: 3243 
							
						 
						
							2002-08-03 20:57:38 +00:00  
				
					
						
							
							
								 
						
							
								1944064801 
								
							 
						 
						
							
							
								
								Simplified handling of array indexes in SetMemOperands_Internal.  
							
							... 
							
							
							
							llvm-svn: 3236 
							
						 
						
							2002-08-03 13:48:21 +00:00  
				
					
						
							
							
								 
						
							
								6d6deba9f9 
								
							 
						 
						
							
							
								
								Bug fix: incorrect SAVE instruction when using register for stack size.  
							
							... 
							
							
							
							llvm-svn: 3198 
							
						 
						
							2002-08-01 14:26:11 +00:00  
				
					
						
							
							
								 
						
							
								c19b1cc168 
								
							 
						 
						
							
							
								
								Just improved comments and assertions.  
							
							... 
							
							
							
							llvm-svn: 3191 
							
						 
						
							2002-07-31 21:13:31 +00:00  
				
					
						
							
							
								 
						
							
								defe6ec939 
								
							 
						 
						
							
							
								
								Add a missing case: converting float/double to unsigned integer types.  
							
							... 
							
							
							
							llvm-svn: 3188 
							
						 
						
							2002-07-31 21:01:34 +00:00  
				
					
						
							
							
								 
						
							
								31d05fdd0a 
								
							 
						 
						
							
							
								
								* Move InstructionSelection pass to lib/CodeGen/InstrSelection so it is  
							
							... 
							
							
							
							shared by backends.
llvm-svn: 3146 
							
						 
						
							2002-07-30 03:56:16 +00:00  
				
					
						
							
							
								 
						
							
								26c7e5839e 
								
							 
						 
						
							
							
								
								changed implementation of LLVM BYTECODE Length  
							
							... 
							
							
							
							llvm-svn: 3089 
							
						 
						
							2002-07-25 17:22:48 +00:00  
				
					
						
							
							
								 
						
							
								10073a9080 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 3075 
							
						 
						
							2002-07-25 06:17:51 +00:00  
				
					
						
							
							
								 
						
							
								3091e11726 
								
							 
						 
						
							
							
								
								GCC 3.1 changes, finally the burm file builds the FIRST time a clean directory is built.  
							
							... 
							
							
							
							llvm-svn: 3073 
							
						 
						
							2002-07-25 06:08:32 +00:00  
				
					
						
							
							
								 
						
							
								e98dd5fcac 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 3056 
							
						 
						
							2002-07-24 21:21:32 +00:00  
				
					
						
							
							
								 
						
							
								a896b08b5c 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 3002 
							
						 
						
							2002-07-23 17:52:38 +00:00  
				
					
						
							
							
								 
						
							
								f6f772b1af 
								
							 
						 
						
							
							
								
								moved from CodeGen to this dir  
							
							... 
							
							
							
							llvm-svn: 2992 
							
						 
						
							2002-07-22 22:09:35 +00:00  
				
					
						
							
							
								 
						
							
								889faf8bc9 
								
							 
						 
						
							
							
								
								Adding code for outputing length in .s  
							
							... 
							
							
							
							llvm-svn: 2979 
							
						 
						
							2002-07-21 09:35:01 +00:00  
				
					
						
							
							
								 
						
							
								3e751859ec 
								
							 
						 
						
							
							
								
								* Make global variables with external linkage get emitted correctly  
							
							... 
							
							
							
							* Do NOT add a prefix to global variables that are external
* Add newline after emitting a constpointerref
llvm-svn: 2925 
							
						 
						
							2002-07-16 18:35:16 +00:00  
				
					
						
							
							
								 
						
							
								382f286ae7 
								
							 
						 
						
							
							
								
								Added the Mapping Pass to out put Mapping Info to .s file  
							
							... 
							
							
							
							llvm-svn: 2913 
							
						 
						
							2002-07-15 23:58:21 +00:00  
				
					
						
							
							
								 
						
							
								cf764680ad 
								
							 
						 
						
							
							
								
								added std:: to vector  
							
							... 
							
							
							
							llvm-svn: 2874 
							
						 
						
							2002-07-11 00:16:28 +00:00  
				
					
						
							
							
								 
						
							
								c5f8b52bd0 
								
							 
						 
						
							
							
								
								Changed interface to insertCallerSavingCode().  
							
							... 
							
							
							
							llvm-svn: 2859 
							
						 
						
							2002-07-10 21:42:42 +00:00  
				
					
						
							
							
								 
						
							
								e997a11251 
								
							 
						 
						
							
							
								
								Stop using pseudo-instructions (SETX, SETUW, SETSW)  
							
							... 
							
							
							
							and generate actual machine instruction sequences directly.
llvm-svn: 2858 
							
						 
						
							2002-07-10 21:42:13 +00:00  
				
					
						
							
							
								 
						
							
								4e1ee14694 
								
							 
						 
						
							
							
								
								Add support to print %hh, %hm, %lm, or %lo in an operand field.  
							
							... 
							
							
							
							llvm-svn: 2857 
							
						 
						
							2002-07-10 21:41:21 +00:00  
				
					
						
							
							
								 
						
							
								58c904ace6 
								
							 
						 
						
							
							
								
								Major overhaul to stop using pseudo-instructions (SETX, SETUW, SETSW)  
							
							... 
							
							
							
							and generate actual machine instruction sequences directly.
Also a couple of bug fixes in code for putting constants into registers:
-- Do *not* sign-extend unsigned constant that is shorter than int reg size
-- Fix handling of address constant (a GlobalValue) vs. constant that
   must be loaded.
llvm-svn: 2856 
							
						 
						
							2002-07-10 21:39:50 +00:00  
				
					
						
							
							
								 
						
							
								4aee77c70b 
								
							 
						 
						
							
							
								
								More important fixes:  
							
							... 
							
							
							
							-- FP argument to a function with no prototype going on stack
   was not being copied to the stack in colorCallArgs().
-- Put caller-saving code *before* argument copying code so that
   we don't trash a register before saving it!
-- Two other minor fixes.
llvm-svn: 2855 
							
						 
						
							2002-07-10 21:36:00 +00:00  
				
					
						
							
							
								 
						
							
								7e882db2f4 
								
							 
						 
						
							
							
								
								Added std:: to mem_fun for 64-bit gcc  
							
							... 
							
							
							
							llvm-svn: 2845 
							
						 
						
							2002-07-09 19:16:59 +00:00  
				
					
						
							
							
								 
						
							
								a3697666eb 
								
							 
						 
						
							
							
								
								Added support for printing constant global references to  
							
							... 
							
							
							
							assembly.
llvm-svn: 2842 
							
						 
						
							2002-07-09 12:30:29 +00:00  
				
					
						
							
							
								 
						
							
								5eb69429aa 
								
							 
						 
						
							
							
								
								Numerous changes in interface to class SparcRegInfo corresponding to  
							
							... 
							
							
							
							changes in class MachineRegInfo (see MachineRegInfo.h for details).
Added {LD,ST}[X]FSR instructions.
llvm-svn: 2839 
							
						 
						
							2002-07-08 23:34:10 +00:00  
				
					
						
							
							
								 
						
							
								1ce4096033 
								
							 
						 
						
							
							
								
								class MachineCodeForBasicBlock is now an annotation on BasicBlock.  
							
							... 
							
							
							
							llvm-svn: 2838 
							
						 
						
							2002-07-08 23:31:24 +00:00  
				
					
						
							
							
								 
						
							
								3bb830d337 
								
							 
						 
						
							
							
								
								BA no longer has the unused CC operand.  
							
							... 
							
							
							
							llvm-svn: 2837 
							
						 
						
							2002-07-08 23:30:59 +00:00  
				
					
						
							
							
								 
						
							
								82190d3e73 
								
							 
						 
						
							
							
								
								Have to save a boolean (setCC) value whenever use is outside the current  
							
							... 
							
							
							
							basic block.
Mark setCCInstr used as dest. of conditional-move as both a def and a use.
BA instruction no longer has the unused CC argument.
llvm-svn: 2836 
							
						 
						
							2002-07-08 23:30:14 +00:00  
				
					
						
							
							
								 
						
							
								c564520c5c 
								
							 
						 
						
							
							
								
								BA has only one argument.  
							
							... 
							
							
							
							Added LDFSR, LDXFSR, STFSR and STXFSR.
Fixed operands info for RDCCR, WRCCR.
llvm-svn: 2835 
							
						 
						
							2002-07-08 23:25:17 +00:00  
				
					
						
							
							
								 
						
							
								aee6701e63 
								
							 
						 
						
							
							
								
								Significant changes to correctly spill CC registers and to correctly  
							
							... 
							
							
							
							handle conditional move instructions:
-- cpMem<->Reg functions now support CC registers (int and FP) correctly.
   Also, cpMem<->Reg functions now return a vector of machine instructions.
-- Scratch registers must be explicitly provided to cpMem<->Reg when
   needed, since CC regs need one to be copied to/from memory.
-- CC regs are saved to a scratch register instead of stack.
-- All regs used by a instruction are now recorded in MachineInstr::regsUsed,
   since regs used to save values *across* an instruction are not obvious
   either from the operands or from the LiveVar sets.
-- An (explicit or implicit) operand may now be both a def and a use.
   This is needed for conditional move operations.
   So an operand may need spill code both before and after the instruction.
Other changes:
-- Added several get{Class,Type} functions.
-- Added unified-to-local register number conversion.
-- class MachineCodeForBasicBlock is now an annotation on BasicBlock.
-- Suggest/Color methods may modify the MachineInstr (and always did),
   so don't make that argument const!
-- Caller-saving code doesn't need its special purpose code for
   handling CC registers since cpMem<->Reg handle those correctly now.
llvm-svn: 2834 
							
						 
						
							2002-07-08 23:23:12 +00:00  
				
					
						
							
							
								 
						
							
								c28c7b9ccf 
								
							 
						 
						
							
							
								
								Remove diff-cluttering tags  
							
							... 
							
							
							
							llvm-svn: 2808 
							
						 
						
							2002-06-30 16:12:03 +00:00  
				
					
						
							
							
								 
						
							
								458496c060 
								
							 
						 
						
							
							
								
								changes to make it compatible with 64bit gcc  
							
							... 
							
							
							
							llvm-svn: 2791 
							
						 
						
							2002-06-25 20:55:50 +00:00  
				
					
						
							
							
								 
						
							
								7076ff29ed 
								
							 
						 
						
							
							
								
								MEGAPATCH checkin.  
							
							... 
							
							
							
							For details, See: docs/2002-06-25-MegaPatchInfo.txt
llvm-svn: 2778 
							
						 
						
							2002-06-25 16:13:21 +00:00  
				
					
						
							
							
								 
						
							
								2152e03bfd 
								
							 
						 
						
							
							
								
								Fix constness  
							
							... 
							
							
							
							llvm-svn: 2762 
							
						 
						
							2002-06-05 18:11:37 +00:00  
				
					
						
							
							
								 
						
							
								c0b158b94d 
								
							 
						 
						
							
							
								
								Fix Constness problems  
							
							... 
							
							
							
							llvm-svn: 2761 
							
						 
						
							2002-06-05 18:08:26 +00:00  
				
					
						
							
							
								 
						
							
								070cf77a40 
								
							 
						 
						
							
							
								
								Disable debugging output  
							
							... 
							
							
							
							llvm-svn: 2756 
							
						 
						
							2002-06-04 03:09:57 +00:00  
				
					
						
							
							
								 
						
							
								abe98198a8 
								
							 
						 
						
							
							
								
								Convert RegClass::IsColorUsedArr from a dynamically allocated array to  
							
							... 
							
							
							
							a vector.  This makes asserting on array bounds easier.
llvm-svn: 2731 
							
						 
						
							2002-05-23 15:50:03 +00:00  
				
					
						
							
							
								 
						
							
								4dbcec4295 
								
							 
						 
						
							
							
								
								Fixed the makefile to not die when compiling a new, empty, source directory  
							
							... 
							
							
							
							llvm-svn: 2688 
							
						 
						
							2002-05-21 15:58:24 +00:00  
				
					
						
							
							
								 
						
							
								7f99b6f58c 
								
							 
						 
						
							
							
								
								Rename IsPowerOf2 to isPowerOf2  
							
							... 
							
							
							
							llvm-svn: 2663 
							
						 
						
							2002-05-19 21:20:19 +00:00  
				
					
						
							
							
								 
						
							
								8b831746be 
								
							 
						 
						
							
							
								
								Add integer register size field.  
							
							... 
							
							
							
							Make all sizes and offsets uint64_t instead of uint.
Fixed GetIndexedOffset to handle mixed array and struct indices.
llvm-svn: 2641 
							
						 
						
							2002-05-19 15:28:02 +00:00  
				
					
						
							
							
								 
						
							
								e9327f0082 
								
							 
						 
						
							
							
								
								Numerous bug fixes:  
							
							... 
							
							
							
							-- correct sign extensions for integer casts and for shift-by-constant
   instructions generated for integer multiply
-- passing FP arguments to functions with more than 6 arguments
-- passing FP arguments to varargs functions
-- passing FP arguments to functions with no prototypes
-- incorrect stack frame size when padding a section
-- folding getelementptr operations with mixed array and struct indexes
-- use uint64_t instead of uint for constant offsets in mem operands
-- incorrect coloring for CC registers (both int and FP): interferences
   were being completely ignored for int CC and were considered but no
   spills were marked for fp CC!
Also some code improvements:
-- better interface to generating machine instr for common cases
   (many places still need to be updated to use this interface)
-- annotations on MachineInstr to communicate information from
   one codegen phase to another (now used to pass information about
   CALL/JMPLCALL operands from selection to register allocation)
-- all sizes and offests in class TargetData are uint64_t instead of uint
llvm-svn: 2640 
							
						 
						
							2002-05-19 15:25:51 +00:00  
				
					
						
							
							
								 
						
							
								8b1e4d63fe 
								
							 
						 
						
							
							
								
								Extend TargetData::getIndexedOffset to support arrays and pointers!  
							
							... 
							
							
							
							llvm-svn: 2535 
							
						 
						
							2002-05-07 20:00:33 +00:00  
				
					
						
							
							
								 
						
							
								181cc32365 
								
							 
						 
						
							
							
								
								Replace all usages of Type::isPointerType with isa<PointerType>  
							
							... 
							
							
							
							llvm-svn: 2486 
							
						 
						
							2002-05-06 16:15:30 +00:00  
				
					
						
							
							
								 
						
							
								d5a847057b 
								
							 
						 
						
							
							
								
								Eliminate duplicate or unneccesary #include's  
							
							... 
							
							
							
							llvm-svn: 2397 
							
						 
						
							2002-04-29 17:42:12 +00:00  
				
					
						
							
							
								 
						
							
								37104aace8 
								
							 
						 
						
							
							
								
								Add new optional getPassName() virtual function that a Pass can override  
							
							... 
							
							
							
							to make debugging output a lot nicer.
llvm-svn: 2395 
							
						 
						
							2002-04-29 14:57:45 +00:00  
				
					
						
							
							
								 
						
							
								f12cc842b3 
								
							 
						 
						
							
							
								
								Tighten up the AnalysisUsage of lots of passes, primarily to correctly indicate whether or not they invalidate the CFGA  
							
							... 
							
							
							
							llvm-svn: 2386 
							
						 
						
							2002-04-28 21:27:06 +00:00  
				
					
						
							
							
								 
						
							
								63c52f3805 
								
							 
						 
						
							
							
								
								Add #include that was removed from TargetMachine.h  
							
							... 
							
							
							
							llvm-svn: 2381 
							
						 
						
							2002-04-28 20:40:59 +00:00  
				
					
						
							
							
								 
						
							
								ca14237696 
								
							 
						 
						
							
							
								
								Split ConstantVals.h into Constant.h and Constants.h  
							
							... 
							
							
							
							llvm-svn: 2378 
							
						 
						
							2002-04-28 19:55:58 +00:00  
				
					
						
							
							
								 
						
							
								776bfa20a9 
								
							 
						 
						
							
							
								
								Simplify code  
							
							... 
							
							
							
							Remove unneccesary getID variant for module's
llvm-svn: 2353 
							
						 
						
							2002-04-28 04:50:54 +00:00  
				
					
						
							
							
								 
						
							
								f998685cd9 
								
							 
						 
						
							
							
								
								s/Method/Function  
							
							... 
							
							
							
							llvm-svn: 2336 
							
						 
						
							2002-04-27 07:27:19 +00:00  
				
					
						
							
							
								 
						
							
								c8e665431b 
								
							 
						 
						
							
							
								
								* 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
llvm-svn: 2333 
							
						 
						
							2002-04-27 06:56:12 +00:00  
				
					
						
							
							
								 
						
							
								e6dd75604e 
								
							 
						 
						
							
							
								
								Use the cast<> operator in favor of C style casts  
							
							... 
							
							
							
							llvm-svn: 2331 
							
						 
						
							2002-04-27 03:14:39 +00:00  
				
					
						
							
							
								 
						
							
								2716b5e524 
								
							 
						 
						
							
							
								
								Change Constant::getNullConstant to Constant::getNullValue  
							
							... 
							
							
							
							llvm-svn: 2323 
							
						 
						
							2002-04-27 02:25:14 +00:00  
				
					
						
							
							
								 
						
							
								93ddab25e8 
								
							 
						 
						
							
							
								
								Simplify code a bit  
							
							... 
							
							
							
							llvm-svn: 2322 
							
						 
						
							2002-04-27 02:24:17 +00:00  
				
					
						
							
							
								 
						
							
								776df77d14 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 2317 
							
						 
						
							2002-04-25 04:43:45 +00:00  
				
					
						
							
							
								 
						
							
								a6d94c9a76 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 2316 
							
						 
						
							2002-04-25 04:42:21 +00:00  
				
					
						
							
							
								 
						
							
								a77a8eee50 
								
							 
						 
						
							
							
								
								Added functions to compute which register, if any, to use  
							
							... 
							
							
							
							for a particular argument in a list of arguments.
llvm-svn: 2315 
							
						 
						
							2002-04-25 04:40:24 +00:00  
				
					
						
							
							
								 
						
							
								dccabec1ea 
								
							 
						 
						
							
							
								
								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.
llvm-svn: 2314 
							
						 
						
							2002-04-25 04:37:51 +00:00  
				
					
						
							
							
								 
						
							
								b63c4886c4 
								
							 
						 
						
							
							
								
								Implementation of class MachineFrameInfo.  
							
							... 
							
							
							
							llvm-svn: 2313 
							
						 
						
							2002-04-25 04:35:27 +00:00  
				
					
						
							
							
								 
						
							
								c3728c281b 
								
							 
						 
						
							
							
								
								* getAsString requires that the input array is string compatible, so  
							
							... 
							
							
							
							assert it.
* Use WriteAsOperand instead of getStringValue for constants
llvm-svn: 2296 
							
						 
						
							2002-04-18 18:15:38 +00:00  
				
					
						
							
							
								 
						
							
								a8e24c494e 
								
							 
						 
						
							
							
								
								Only print debug message if DEBUG_RA is on  
							
							... 
							
							
							
							llvm-svn: 2254 
							
						 
						
							2002-04-15 22:41:48 +00:00  
				
					
						
							
							
								 
						
							
								0b32d0d511 
								
							 
						 
						
							
							
								
								Handle the FP format problem, where outputed FP constants were not precise  
							
							... 
							
							
							
							enough.  This fixes compilation of the health benchmark.
llvm-svn: 2228 
							
						 
						
							2002-04-11 21:44:02 +00:00  
				
					
						
							
							
								 
						
							
								98d0ac0f8e 
								
							 
						 
						
							
							
								
								Eliminate unneccesary extraneous iterators  
							
							... 
							
							
							
							llvm-svn: 2215 
							
						 
						
							2002-04-09 19:46:27 +00:00  
				
					
						
							
							
								 
						
							
								06be180225 
								
							 
						 
						
							
							
								
								Add explicit #includes of Function.h to make up for the removed #include  
							
							... 
							
							
							
							in iOther.h
llvm-svn: 2209 
							
						 
						
							2002-04-09 19:08:28 +00:00  
				
					
						
							
							
								 
						
							
								6b17c83fb0 
								
							 
						 
						
							
							
								
								iUse new form of pop_back to make code more concise  
							
							... 
							
							
							
							llvm-svn: 2202 
							
						 
						
							2002-04-09 18:02:02 +00:00  
				
					
						
							
							
								 
						
							
								c71deb8412 
								
							 
						 
						
							
							
								
								Delete NOP instructions as they are eliminated.  
							
							... 
							
							
							
							llvm-svn: 2199 
							
						 
						
							2002-04-09 15:05:04 +00:00  
				
					
						
							
							
								 
						
							
								929d4a8bb5 
								
							 
						 
						
							
							
								
								* Add a useful file comment  
							
							... 
							
							
							
							* Move InsertPrologEpilogCode class to PrologEpilogCodeInserter.cpp
   -> Among other things, this eliminates the need for the minstrVec static
      global array.
llvm-svn: 2195 
							
						 
						
							2002-04-09 05:21:26 +00:00  
				
					
						
							
							
								 
						
							
								f8a9bfbc03 
								
							 
						 
						
							
							
								
								Move the InsertPrologEpilogCode class out of the Sparc.cpp file into the  
							
							... 
							
							
							
							new PrologEpilogCodeInserter.cpp file, and include the bodies of the
GetInstructionsFor(Prolog|Epilog) functions from SparcInstrSelection.cpp
into the class.  This eliminates the need for a static global vector of
instructions and a class of errors that is really unneccesary.
llvm-svn: 2194 
							
						 
						
							2002-04-09 05:20:15 +00:00  
				
					
						
							
							
								 
						
							
								5074bb529e 
								
							 
						 
						
							
							
								
								Move the InsertPrologEpilogCode class out of the Sparc.cpp file, and include  
							
							... 
							
							
							
							the bodies of the GetInstructionsFor(Prolog|Epilog) functions from
SparcInstrSelection.cpp into the class.  This eliminates the need for a static
global vector of instructions and a class of errors that is really unneccesary.
llvm-svn: 2193 
							
						 
						
							2002-04-09 05:18:31 +00:00  
				
					
						
							
							
								 
						
							
								35b90c22e9 
								
							 
						 
						
							
							
								
								Include prototype for interface to PrologEpilogCodeInserter.cpp file  
							
							... 
							
							
							
							llvm-svn: 2192 
							
						 
						
							2002-04-09 05:16:36 +00:00  
				
					
						
							
							
								 
						
							
								46f8b0e759 
								
							 
						 
						
							
							
								
								Use new higher level isFloatingPoint() function  
							
							... 
							
							
							
							llvm-svn: 2191 
							
						 
						
							2002-04-09 05:16:08 +00:00  
				
					
						
							
							
								 
						
							
								30e23dacbc 
								
							 
						 
						
							
							
								
								Convert AddedInstrMapType to contain AddedInstrns by value instead of by  
							
							... 
							
							
							
							pointer so that they do not all get leaked!
llvm-svn: 2188 
							
						 
						
							2002-04-09 05:13:04 +00:00  
				
					
						
							
							
								 
						
							
								f739fa8541 
								
							 
						 
						
							
							
								
								s/Method/Function  
							
							... 
							
							
							
							llvm-svn: 2180 
							
						 
						
							2002-04-08 22:03:57 +00:00  
				
					
						
							
							
								 
						
							
								6915f8fc3c 
								
							 
						 
						
							
							
								
								* Move include/llvm/Analysis/SlotCalculator.h to include/llvm/SlotCalculator.h  
							
							... 
							
							
							
							because the slot calculator is already part of the VMCore library.
* Rename incorporateMethod and purgeMethod to *Function
llvm-svn: 2154 
							
						 
						
							2002-04-07 22:49:37 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								e2f2f54f0c 
								
							 
						 
						
							
							
								
								s/MethodType/FunctionType  
							
							... 
							
							
							
							llvm-svn: 2115 
							
						 
						
							2002-04-04 22:19:18 +00:00  
				
					
						
							
							
								 
						
							
								313ca14124 
								
							 
						 
						
							
							
								
								Case numbers were not updated when Sparc.burg.in was changed  
							
							... 
							
							
							
							to add separate label for bitwise NOT operator.
llvm-svn: 2091 
							
						 
						
							2002-04-01 20:28:48 +00:00  
				
					
						
							
							
								 
						
							
								4973f73ad1 
								
							 
						 
						
							
							
								
								1. Fix a leftover bug in generating memory instructions.  
							
							... 
							
							
							
							2. Fix type used for TmpInstruction holding the return address.
llvm-svn: 2075 
							
						 
						
							2002-03-31 19:07:35 +00:00  
				
					
						
							
							
								 
						
							
								02662bd390 
								
							 
						 
						
							
							
								
								Added function getCallInstIndirectAddrVal() to set call interference  
							
							... 
							
							
							
							for that value.
llvm-svn: 2074 
							
						 
						
							2002-03-31 19:04:50 +00:00  
				
					
						
							
							
								 
						
							
								07c874547b 
								
							 
						 
						
							
							
								
								Minor cleanup in printing constants.  I think this included a bug  
							
							... 
							
							
							
							fix related to putting a read-write variable in a read-only section,
but I'm not sure now.
llvm-svn: 2073 
							
						 
						
							2002-03-31 19:03:58 +00:00  
				
					
						
							
							
								 
						
							
								bd4e68c280 
								
							 
						 
						
							
							
								
								Fix CreateUIntSetInstruction() to handle sign extensions correctly.  
							
							... 
							
							
							
							llvm-svn: 2059 
							
						 
						
							2002-03-31 00:13:12 +00:00  
				
					
						
							
							
								 
						
							
								ff87436f48 
								
							 
						 
						
							
							
								
								s/Method/Function  
							
							... 
							
							
							
							llvm-svn: 2035 
							
						 
						
							2002-03-29 03:51:11 +00:00  
				
					
						
							
							
								 
						
							
								5d088b00bf 
								
							 
						 
						
							
							
								
								Convert to use new style casts instead of direct checking  
							
							... 
							
							
							
							llvm-svn: 1990 
							
						 
						
							2002-03-26 17:58:12 +00:00  
				
					
						
							
							
								 
						
							
								75ee890af0 
								
							 
						 
						
							
							
								
								Bug re-fix: put back MachineCodeForInstruction::get(*I).dropAllReferences().  
							
							... 
							
							
							
							Also re-enable instr. scheduling pass.
llvm-svn: 1966 
							
						 
						
							2002-03-24 03:35:16 +00:00  
				
					
						
							
							
								 
						
							
								be08b5ea15 
								
							 
						 
						
							
							
								
								Change latencies for Load, Store and Branch instructions.  
							
							... 
							
							
							
							llvm-svn: 1965 
							
						 
						
							2002-03-24 03:33:53 +00:00  
				
					
						
							
							
								 
						
							
								72213c9a66 
								
							 
						 
						
							
							
								
								Major enhancements to how array and structure indices are handled.  
							
							... 
							
							
							
							Improve checking for constants in Multiply.
Simpler method to keep track of when a node is folded into its parent.
Several other bug fixes.
llvm-svn: 1964 
							
						 
						
							2002-03-24 03:33:02 +00:00  
				
					
						
							
							
								 
						
							
								493b8241e0 
								
							 
						 
						
							
							
								
								Add support for code generation for array references.  
							
							... 
							
							
							
							Also, use distinct names for the three types of SetMachineOperand to
avoid painful overloading problems and errors.
Bug fix in converting-int-to-float.  Other minor stuff.
llvm-svn: 1896 
							
						 
						
							2002-03-18 03:15:35 +00:00  
				
					
						
							
							
								 
						
							
								db1435f410 
								
							 
						 
						
							
							
								
								Bug fixes for not using unified reg. numbers, and for using the  
							
							... 
							
							
							
							wrong register class for saving CC registers.
Also, use distinct names for the three types of SetMachineOperand.
llvm-svn: 1895 
							
						 
						
							2002-03-18 03:12:16 +00:00  
				
					
						
							
							
								 
						
							
								f9ab087be7 
								
							 
						 
						
							
							
								
								Use distinct names for the three types of SetMachineOperand to  
							
							... 
							
							
							
							avoid painful overloading problems and errors.
llvm-svn: 1893 
							
						 
						
							2002-03-18 03:09:15 +00:00  
				
					
						
							
							
								 
						
							
								55ee12bb25 
								
							 
						 
						
							
							
								
								Minor fixes.  
							
							... 
							
							
							
							llvm-svn: 1892 
							
						 
						
							2002-03-18 03:08:07 +00:00  
				
					
						
							
							
								 
						
							
								270f56a085 
								
							 
						 
						
							
							
								
								Handling of global names was severely broken when converting to 2 passes.  
							
							... 
							
							
							
							Different labels were generated for the same name in different passes.
Use an annotation to hold a fixed table of names.
llvm-svn: 1891 
							
						 
						
							2002-03-18 03:07:26 +00:00  
				
					
						
							
							
								 
						
							
								0513e01bee 
								
							 
						 
						
							
							
								
								Several sundry bug fixes.  
							
							... 
							
							
							
							llvm-svn: 1890 
							
						 
						
							2002-03-18 03:02:42 +00:00  
				
					
						
							
							
								 
						
							
								15148e7e8c 
								
							 
						 
						
							
							
								
								Fix include error.  
							
							... 
							
							
							
							llvm-svn: 1819 
							
						 
						
							2002-03-03 20:46:32 +00:00  
				
					
						
							
							
								 
						
							
								5536c9c938 
								
							 
						 
						
							
							
								
								Clean up std namespace issues  
							
							... 
							
							
							
							Silence warning
llvm-svn: 1790 
							
						 
						
							2002-02-24 23:02:40 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								774cbceb0b 
								
							 
						 
						
							
							
								
								Write llvm bytecode to output .s file as last step of LLC.  
							
							... 
							
							
							
							llvm-svn: 1728 
							
						 
						
							2002-02-11 22:35:46 +00:00  
				
					
						
							
							
								 
						
							
								74ed5cf1e6 
								
							 
						 
						
							
							
								
								Fix build error  
							
							... 
							
							
							
							llvm-svn: 1722 
							
						 
						
							2002-02-11 17:11:43 +00:00  
				
					
						
							
							
								 
						
							
								ea13e0afa0 
								
							 
						 
						
							
							
								
								Convert operand iterator over to work like an STL iterator  
							
							... 
							
							
							
							llvm-svn: 1720 
							
						 
						
							2002-02-05 06:02:59 +00:00  
				
					
						
							
							
								 
						
							
								7e5ee4253c 
								
							 
						 
						
							
							
								
								Minor change: Methods that return ValueSet's that are guaranteed to be valid  
							
							... 
							
							
							
							return references instead of pointers.
llvm-svn: 1719 
							
						 
						
							2002-02-05 04:20:12 +00:00  
				
					
						
							
							
								 
						
							
								d30f989cda 
								
							 
						 
						
							
							
								
								* Code Cleanups  
							
							... 
							
							
							
							* Removal dependencies on Type.h & remove uses of getTypeID()
llvm-svn: 1718 
							
						 
						
							2002-02-05 03:52:29 +00:00  
				
					
						
							
							
								 
						
							
								b0af9cdbda 
								
							 
						 
						
							
							
								
								* Eliminate the LiveVarSet class, making applyTranferFuncForMInst a static  
							
							... 
							
							
							
							function in the one .cpp file that uses it.  Use ValueSet's instead.
* Prepare to delete LiveVarSet.h & LiveVarSet.cpp
* Eliminate the ValueSet class, making all old member functions into global
  templates that will eventually be moved to Support.
* Eliminate some irrelevant const's
llvm-svn: 1712 
							
						 
						
							2002-02-05 02:52:05 +00:00  
				
					
						
							
							
								 
						
							
								30e8fb69c5 
								
							 
						 
						
							
							
								
								* Code Cleanups  
							
							... 
							
							
							
							* Introduce RAV to allow stream I/O instead of using printValue
llvm-svn: 1710 
							
						 
						
							2002-02-05 01:43:49 +00:00  
				
					
						
							
							
								 
						
							
								1cb37628d9 
								
							 
						 
						
							
							
								
								The interface to instruction scheduling is now just a call to get the pass.  
							
							... 
							
							
							
							llvm-svn: 1702 
							
						 
						
							2002-02-04 20:03:43 +00:00  
				
					
						
							
							
								 
						
							
								e6b511dc0a 
								
							 
						 
						
							
							
								
								* ValueSet interface converted from add/remove to insert/erase  
							
							... 
							
							
							
							llvm-svn: 1690 
							
						 
						
							2002-02-04 16:37:09 +00:00  
				
					
						
							
							
								 
						
							
								f48173a875 
								
							 
						 
						
							
							
								
								Convert RegisterAllocator interface to opaque pass type, so that users do not  
							
							... 
							
							
							
							need to know _anything_ about RegAlloc to use it.  Well in the end maybe.
llvm-svn: 1681 
							
						 
						
							2002-02-04 15:54:09 +00:00  
				
					
						
							
							
								 
						
							
								13b2227ccc 
								
							 
						 
						
							
							
								
								EmitAssembly doesn't need an UltraSparc, it can do with any TargetMachine  
							
							... 
							
							
							
							llvm-svn: 1680 
							
						 
						
							2002-02-04 15:53:23 +00:00  
				
					
						
							
							
								 
						
							
								5216cc55f7 
								
							 
						 
						
							
							
								
								* Minor cleanups  
							
							... 
							
							
							
							* Reduce number of #includes
* Remove blatently misleading qualifiers (how do you have an inlined pure virtual function?)
* Remove unnecesary & ignored qualifiers (const int argument vs int argument)
* SparcInternals.h now no longer #includes RegClass.h or SparcRegClassInfo.h
* Pull inlined functions out of .h file if they are virtual and interfere with dependencies
llvm-svn: 1677 
							
						 
						
							2002-02-04 05:59:25 +00:00  
				
					
						
							
							
								 
						
							
								c797387363 
								
							 
						 
						
							
							
								
								Add code that used to be inline in MachineSchedInfo.h  
							
							... 
							
							
							
							llvm-svn: 1676 
							
						 
						
							2002-02-04 05:56:30 +00:00  
				
					
						
							
							
								 
						
							
								a3403539e1 
								
							 
						 
						
							
							
								
								SparcRegInfo does NOT need anything about instruction scheduling.  
							
							... 
							
							
							
							llvm-svn: 1670 
							
						 
						
							2002-02-04 02:44:38 +00:00  
				
					
						
							
							
								 
						
							
								e769482fd3 
								
							 
						 
						
							
							
								
								Pull all of the scheduling related stuff out of Sparc.cpp into it's own file  
							
							... 
							
							
							
							llvm-svn: 1668 
							
						 
						
							2002-02-04 00:39:14 +00:00  
				
					
						
							
							
								 
						
							
								36aa542ef0 
								
							 
						 
						
							
							
								
								Split RegisterAllocation stuff OUT of Sparc.cpp into a well defined pass  
							
							... 
							
							
							
							that has a very minimal interface (like it should have).
llvm-svn: 1667 
							
						 
						
							2002-02-04 00:33:08 +00:00  
				
					
						
							
							
								 
						
							
								64593c51bb 
								
							 
						 
						
							
							
								
								Move a ton of tables out of SparcInternals.h and move them to Sparc.cpp.  
							
							... 
							
							
							
							Eventually they will probably get moved again, but at least now they aren't
having to be compiled by 7 different .cpp files...
llvm-svn: 1666 
							
						 
						
							2002-02-04 00:04:35 +00:00  
				
					
						
							
							
								 
						
							
								38aa77b911 
								
							 
						 
						
							
							
								
								Convert sparc backend over to use pass based compilation structure.  
							
							... 
							
							
							
							Try to decouple stuff as much as possible.
llvm-svn: 1664 
							
						 
						
							2002-02-03 23:42:19 +00:00  
				
					
						
							
							
								 
						
							
								84fa1e7801 
								
							 
						 
						
							
							
								
								Convert sparc backend over to use pass based compilation structure.  
							
							... 
							
							
							
							Convert some stages into passes in preparation for more splitting up.
Try to decouple stuff as much as possible.
llvm-svn: 1663 
							
						 
						
							2002-02-03 23:41:51 +00:00  
				
					
						
							
							
								 
						
							
								d682045227 
								
							 
						 
						
							
							
								
								Convert assembly emission over to a two pass approach.  
							
							... 
							
							
							
							llvm-svn: 1662 
							
						 
						
							2002-02-03 23:41:08 +00:00  
				
					
						
							
							
								 
						
							
								029af0b37f 
								
							 
						 
						
							
							
								
								Add a file level comment  
							
							... 
							
							
							
							Remove #includes
llvm-svn: 1657 
							
						 
						
							2002-02-03 07:52:04 +00:00  
				
					
						
							
							
								 
						
							
								92a49c5cae 
								
							 
						 
						
							
							
								
								Implement new method by method assembly output & memory releasing  
							
							... 
							
							
							
							llvm-svn: 1656 
							
						 
						
							2002-02-03 07:51:17 +00:00  
				
					
						
							
							
								 
						
							
								477923d0d4 
								
							 
						 
						
							
							
								
								* Switch to new TmpInstruction model  
							
							... 
							
							
							
							* Switch to new MachineCodeForInstruction model
llvm-svn: 1655 
							
						 
						
							2002-02-03 07:50:56 +00:00  
				
					
						
							
							
								 
						
							
								f08669fcbc 
								
							 
						 
						
							
							
								
								* Switch to new TmpInstruction model  
							
							... 
							
							
							
							llvm-svn: 1654 
							
						 
						
							2002-02-03 07:49:49 +00:00  
				
					
						
							
							
								 
						
							
								0752167009 
								
							 
						 
						
							
							
								
								* Swithc to new MachineCodeForInstruction model  
							
							... 
							
							
							
							* Implement memory freeing for instruction temporaries
llvm-svn: 1653 
							
						 
						
							2002-02-03 07:49:15 +00:00  
				
					
						
							
							
								 
						
							
								e772d28862 
								
							 
						 
						
							
							
								
								* prune #includes  
							
							... 
							
							
							
							* Implement permethod output of machine code to assembly
llvm-svn: 1652 
							
						 
						
							2002-02-03 07:48:06 +00:00  
				
					
						
							
							
								 
						
							
								621457a34b 
								
							 
						 
						
							
							
								
								Add #include that is no longer implicitly included  
							
							... 
							
							
							
							llvm-svn: 1651 
							
						 
						
							2002-02-03 07:47:05 +00:00  
				
					
						
							
							
								 
						
							
								b07bf170c6 
								
							 
						 
						
							
							
								
								Remove dead variable  
							
							... 
							
							
							
							llvm-svn: 1515 
							
						 
						
							2002-01-21 22:50:38 +00:00  
				
					
						
							
							
								 
						
							
								61c6aeb6fe 
								
							 
						 
						
							
							
								
								Remove dead variable.  
							
							... 
							
							
							
							llvm-svn: 1514 
							
						 
						
							2002-01-21 22:44:57 +00:00  
				
					
						
							
							
								 
						
							
								7f74a56e24 
								
							 
						 
						
							
							
								
								Changes to build successfully with GCC 3.02  
							
							... 
							
							
							
							llvm-svn: 1503 
							
						 
						
							2002-01-20 22:54:45 +00:00  
				
					
						
							
							
								 
						
							
								f4c2dddcda 
								
							 
						 
						
							
							
								
								Added more comments  
							
							... 
							
							
							
							llvm-svn: 1498 
							
						 
						
							2002-01-07 21:03:42 +00:00  
				
					
						
							
							
								 
						
							
								c07341f999 
								
							 
						 
						
							
							
								
								removed SizeOfStackOperand constant from the SparcRegInfo class - no longer used  
							
							... 
							
							
							
							by code.
llvm-svn: 1497 
							
						 
						
							2002-01-07 20:33:44 +00:00  
				
					
						
							
							
								 
						
							
								57386b570f 
								
							 
						 
						
							
							
								
								Added more comments  
							
							... 
							
							
							
							llvm-svn: 1496 
							
						 
						
							2002-01-07 20:28:49 +00:00  
				
					
						
							
							
								 
						
							
								4cfbfd599a 
								
							 
						 
						
							
							
								
								Added comments and correct logic for finding register sizes.  
							
							... 
							
							
							
							llvm-svn: 1494 
							
						 
						
							2002-01-07 19:20:28 +00:00  
				
					
						
							
							
								 
						
							
								cb2335f13f 
								
							 
						 
						
							
							
								
								Eliminate all uses of memInst->getIndicesBROKEN().  
							
							... 
							
							
							
							llvm-svn: 1485 
							
						 
						
							2001-12-15 00:36:32 +00:00  
				
					
						
							
							
								 
						
							
								721fee255c 
								
							 
						 
						
							
							
								
								getIndexedOffset() shd take vector of Values, not of Constants!  
							
							... 
							
							
							
							llvm-svn: 1484 
							
						 
						
							2001-12-15 00:35:48 +00:00  
				
					
						
							
							
								 
						
							
								8234b04143 
								
							 
						 
						
							
							
								
								Remove int hack to allow unsigned numbers greater than 2^63 - 1...  
							
							... 
							
							
							
							llvm-svn: 1483 
							
						 
						
							2001-12-15 00:33:36 +00:00  
				
					
						
							
							
								 
						
							
								7dc20864b6 
								
							 
						 
						
							
							
								
								Allow pointer indexing  
							
							... 
							
							
							
							llvm-svn: 1462 
							
						 
						
							2001-12-14 16:31:26 +00:00  
				
					
						
							
							
								 
						
							
								b2b1b3d036 
								
							 
						 
						
							
							
								
								Remove unsized array support  
							
							... 
							
							
							
							llvm-svn: 1461 
							
						 
						
							2001-12-14 16:30:51 +00:00  
				
					
						
							
							
								 
						
							
								6650d18892 
								
							 
						 
						
							
							
								
								Not just arrays are unsized  
							
							... 
							
							
							
							llvm-svn: 1450 
							
						 
						
							2001-12-13 00:46:11 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								3462ae3ad7 
								
							 
						 
						
							
							
								
								Rename ConstPoolVal -> Constant  
							
							... 
							
							
							
							Rename ConstPool*   -> Constant*
Rename ConstPoolVals.h -> ConstantVals.h
llvm-svn: 1407 
							
						 
						
							2001-12-03 22:26:30 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								edbf52c7f9 
								
							 
						 
						
							
							
								
								commented out popAllTempValues since it leads to a bug - see code  
							
							... 
							
							
							
							llvm-svn: 1327 
							
						 
						
							2001-11-15 22:03:04 +00:00  
				
					
						
							
							
								 
						
							
								c97ccc5cb5 
								
							 
						 
						
							
							
								
								changed since names of some methods in PhyRegAlloc changed  
							
							... 
							
							
							
							llvm-svn: 1324 
							
						 
						
							2001-11-15 20:25:07 +00:00  
				
					
						
							
							
								 
						
							
								5c8f573bbf 
								
							 
						 
						
							
							
								
								Fix use of AllocateLocalVar for alloca instruction!  
							
							... 
							
							
							
							llvm-svn: 1319 
							
						 
						
							2001-11-15 15:22:39 +00:00  
				
					
						
							
							
								 
						
							
								821b129755 
								
							 
						 
						
							
							
								
								Fix int->float conversion.  
							
							... 
							
							
							
							llvm-svn: 1314 
							
						 
						
							2001-11-15 14:59:56 +00:00  
				
					
						
							
							
								 
						
							
								3fb79e61c2 
								
							 
						 
						
							
							
								
								Fix cute little bug that was causing the last  
							
							... 
							
							
							
							structure offset to be ignored in computing an offset!
llvm-svn: 1310 
							
						 
						
							2001-11-14 21:24:44 +00:00  
				
					
						
							
							
								 
						
							
								7e833073e3 
								
							 
						 
						
							
							
								
								Add function returning which operand holds immediate constant  
							
							... 
							
							
							
							for a given opcode.
llvm-svn: 1307 
							
						 
						
							2001-11-14 18:48:36 +00:00  
				
					
						
							
							
								 
						
							
								ea1a93b95d 
								
							 
						 
						
							
							
								
								Change latency of SETX to improve schedule -- just a hack.  
							
							... 
							
							
							
							llvm-svn: 1304 
							
						 
						
							2001-11-14 15:54:44 +00:00  
				
					
						
							
							
								 
						
							
								b8be6f6856 
								
							 
						 
						
							
							
								
								Added M_PSEUDO_FLAG for SETX .. instr  
							
							... 
							
							
							
							llvm-svn: 1301 
							
						 
						
							2001-11-14 15:35:13 +00:00  
				
					
						
							
							
								 
						
							
								1237e86597 
								
							 
						 
						
							
							
								
								Remove much cruft from the MemAccessInst instruction  
							
							... 
							
							
							
							llvm-svn: 1298 
							
						 
						
							2001-11-14 11:27:58 +00:00  
				
					
						
							
							
								 
						
							
								1a9a7f2ef1 
								
							 
						 
						
							
							
								
								Changed checking for invalid register number - earlier it was uisng a contant  
							
							... 
							
							
							
							llvm-svn: 1293 
							
						 
						
							2001-11-13 23:08:19 +00:00  
				
					
						
							
							
								 
						
							
								6e9422e14c 
								
							 
						 
						
							
							
								
								When allocating space on stack for writing a register,  
							
							... 
							
							
							
							use the size of the register, not the size of the Value type,
to get the right alignment.
llvm-svn: 1284 
							
						 
						
							2001-11-12 23:26:35 +00:00  
				
					
						
							
							
								 
						
							
								20e105f4b1 
								
							 
						 
						
							
							
								
								Fixed a bug with pervious ColorCallArg  
							
							... 
							
							
							
							llvm-svn: 1278 
							
						 
						
							2001-11-12 20:54:19 +00:00  
				
					
						
							
							
								 
						
							
								24e29431bc 
								
							 
						 
						
							
							
								
								Canged ColorCallArg so that when a call arg is directly pushed on to stack  
							
							... 
							
							
							
							for argument passing, that instruction is directly added to the InstructionsBefore
set of the called machine instruction - i.e., it is not reordered.
llvm-svn: 1277 
							
						 
						
							2001-11-12 20:31:47 +00:00  
				
					
						
							
							
								 
						
							
								01daa32a92 
								
							 
						 
						
							
							
								
								Disable use of the Phi machine instruction which is no longer needed  
							
							... 
							
							
							
							for register allocation.
llvm-svn: 1270 
							
						 
						
							2001-11-12 18:54:11 +00:00  
				
					
						
							
							
								 
						
							
								fcdc2ff6e0 
								
							 
						 
						
							
							
								
								Added phi elimination code  
							
							... 
							
							
							
							llvm-svn: 1265 
							
						 
						
							2001-11-12 14:45:33 +00:00  
				
					
						
							
							
								 
						
							
								e7dc82ec0d 
								
							 
						 
						
							
							
								
								Fix dumb bug in alignment adjustment code!  
							
							... 
							
							
							
							llvm-svn: 1260 
							
						 
						
							2001-11-12 05:16:39 +00:00  
				
					
						
							
							
								 
						
							
								68d00415b4 
								
							 
						 
						
							
							
								
								Fix bogus code that was eliminating needed args.  
							
							... 
							
							
							
							llvm-svn: 1259 
							
						 
						
							2001-11-11 23:11:36 +00:00  
				
					
						
							
							
								 
						
							
								80fc434970 
								
							 
						 
						
							
							
								
								Fixed FP and SP usage. SP for outgoing args - for everything else FP  
							
							... 
							
							
							
							llvm-svn: 1258 
							
						 
						
							2001-11-11 22:37:51 +00:00  
				
					
						
							
							
								 
						
							
								2d5c48fcc9 
								
							 
						 
						
							
							
								
								cahnged StackPointer accesses to FramePointer  
							
							... 
							
							
							
							llvm-svn: 1257 
							
						 
						
							2001-11-11 21:49:37 +00:00  
				
					
						
							
							
								 
						
							
								b3b55ae4b1 
								
							 
						 
						
							
							
								
								Down-growing offsets from FP should start at 0, not -1.  
							
							... 
							
							
							
							llvm-svn: 1255 
							
						 
						
							2001-11-11 21:22:11 +00:00  
				
					
						
							
							
								 
						
							
								0c0859846a 
								
							 
						 
						
							
							
								
								Corrected reodering code for instructions inserted before calls  
							
							... 
							
							
							
							llvm-svn: 1252 
							
						 
						
							2001-11-10 21:20:43 +00:00  
				
					
						
							
							
								 
						
							
								295600c417 
								
							 
						 
						
							
							
								
								Several bug fixes in printing constants, particularly with unsized  
							
							... 
							
							
							
							arrays and multi-dimensional arrays.
llvm-svn: 1239 
							
						 
						
							2001-11-10 02:03:06 +00:00  
				
					
						
							
							
								 
						
							
								209d8e1c3b 
								
							 
						 
						
							
							
								
								Must generate an instruction for GetElementPtr if single user is not  
							
							... 
							
							
							
							a memory instruction!
llvm-svn: 1238 
							
						 
						
							2001-11-10 01:05:26 +00:00  
				
					
						
							
							
								 
						
							
								1812fc499d 
								
							 
						 
						
							
							
								
								Disabled some debuggin messages  
							
							... 
							
							
							
							llvm-svn: 1237 
							
						 
						
							2001-11-10 00:26:55 +00:00  
				
					
						
							
							
								 
						
							
								d0d294afde 
								
							 
						 
						
							
							
								
								Added code for correct reordering of call arguments  
							
							... 
							
							
							
							llvm-svn: 1234 
							
						 
						
							2001-11-09 23:49:14 +00:00  
				
					
						
							
							
								 
						
							
								1c96dfd7af 
								
							 
						 
						
							
							
								
								Added class MachineCacheInfo.  
							
							... 
							
							
							
							llvm-svn: 1229 
							
						 
						
							2001-11-09 02:20:18 +00:00  
				
					
						
							
							
								 
						
							
								2ccb900add 
								
							 
						 
						
							
							
								
								Add support to print constant arrays and structures.  
							
							... 
							
							
							
							Align data larger than an L1 cache line on L1 cache line boundary.
llvm-svn: 1228 
							
						 
						
							2001-11-09 02:19:29 +00:00  
				
					
						
							
							
								 
						
							
								bc23cf5521 
								
							 
						 
						
							
							
								
								Do the same for float->int that we did for int->float earlier.  
							
							... 
							
							
							
							Also check IsPointerType() in addition to IsIntegral() in several places.
llvm-svn: 1227 
							
						 
						
							2001-11-09 02:18:16 +00:00  
				
					
						
							
							
								 
						
							
								e6642f93d4 
								
							 
						 
						
							
							
								
								Added function UltraSparcInstrInfo::CreateCodeToCopyFloatToInt.  
							
							... 
							
							
							
							llvm-svn: 1226 
							
						 
						
							2001-11-09 02:16:40 +00:00  
				
					
						
							
							
								 
						
							
								f34fa6956d 
								
							 
						 
						
							
							
								
								Added class UltraSparcCacheInfo.  
							
							... 
							
							
							
							llvm-svn: 1225 
							
						 
						
							2001-11-09 02:16:04 +00:00  
				
					
						
							
							
								 
						
							
								367f34f7cc 
								
							 
						 
						
							
							
								
								Bug fix: Need to include the stack offset "bias" in assembly code itself.  
							
							... 
							
							
							
							Added class UltraSparcCacheInfo.
Added function to convert float to int by copying via memory.
llvm-svn: 1224 
							
						 
						
							2001-11-09 02:15:52 +00:00  
				
					
						
							
							
								 
						
							
								56e61ec517 
								
							 
						 
						
							
							
								
								Bug fix: need to use .reserve for uninitialized data.  
							
							... 
							
							
							
							llvm-svn: 1205 
							
						 
						
							2001-11-08 14:29:57 +00:00  
				
					
						
							
							
								 
						
							
								c2f8911114 
								
							 
						 
						
							
							
								
								Add handle to TargetMachine object in all Machine...Info classes.  
							
							... 
							
							
							
							llvm-svn: 1197 
							
						 
						
							2001-11-08 05:15:08 +00:00  
				
					
						
							
							
								 
						
							
								81908213ae 
								
							 
						 
						
							
							
								
								Added support for bitwise logical operators.  Use different labels for  
							
							... 
							
							
							
							for these than for boolean logicals to avoid making Burg diverge.
See Burg manual for more information.
llvm-svn: 1196 
							
						 
						
							2001-11-08 05:14:02 +00:00  
				
					
						
							
							
								 
						
							
								03f12f521f 
								
							 
						 
						
							
							
								
								Fixed function getEscapedString to follow the Sparc assembly rules  
							
							... 
							
							
							
							for symbol names!  (And renamed it to getValidSymbolName).
Fixed format for float and other constants.
llvm-svn: 1195 
							
						 
						
							2001-11-08 05:12:37 +00:00  
				
					
						
							
							
								 
						
							
								f889a11590 
								
							 
						 
						
							
							
								
								Fix bugs in FITOS/D instruction generation.  
							
							... 
							
							
							
							The space for optional args in the stack frame is now being computed,
so finish the code generation for the variable `alloca'.
Finally, made a major overhaul of how stack frame is managed.
llvm-svn: 1194 
							
						 
						
							2001-11-08 05:04:09 +00:00  
				
					
						
							
							
								 
						
							
								503d3098fa 
								
							 
						 
						
							
							
								
								Added new function UltraSparcInstrInfo::CreateCodeToCopyIntToFloat.  
							
							... 
							
							
							
							Also major overhaul of how stack frame is managed.
llvm-svn: 1193 
							
						 
						
							2001-11-08 04:57:53 +00:00  
				
					
						
							
							
								 
						
							
								7a1524f971 
								
							 
						 
						
							
							
								
								Removed class RegStackOffsets and used class MachineCodeForMethod  
							
							... 
							
							
							
							directly to manage stack frame.
llvm-svn: 1192 
							
						 
						
							2001-11-08 04:56:41 +00:00  
				
					
						
							
							
								 
						
							
								6fcb28924b 
								
							 
						 
						
							
							
								
								Use MachineFrameInfo as base class of UltraSparcFrameInfo, and made  
							
							... 
							
							
							
							a major overhaul of this class and how stack frames are managed.
llvm-svn: 1191 
							
						 
						
							2001-11-08 04:55:13 +00:00  
				
					
						
							
							
								 
						
							
								e147d062fa 
								
							 
						 
						
							
							
								
								Killing warnings  
							
							... 
							
							
							
							llvm-svn: 1175 
							
						 
						
							2001-11-07 14:01:59 +00:00  
				
					
						
							
							
								 
						
							
								5e030830a3 
								
							 
						 
						
							
							
								
								Squelch warnings about not returning a value  
							
							... 
							
							
							
							llvm-svn: 1173 
							
						 
						
							2001-11-07 13:49:12 +00:00  
				
					
						
							
							
								 
						
							
								f5b4f47cff 
								
							 
						 
						
							
							
								
								Bug fix: Printing AdIBef and AdIAft outside the scope where they  
							
							... 
							
							
							
							were declared, and in some cases when they were unintialized.
llvm-svn: 1146 
							
						 
						
							2001-11-06 05:01:54 +00:00  
				
					
						
							
							
								 
						
							
								80cf60687d 
								
							 
						 
						
							
							
								
								Generate code for Rem instruction.  
							
							... 
							
							
							
							llvm-svn: 1124 
							
						 
						
							2001-11-04 21:59:14 +00:00  
				
					
						
							
							
								 
						
							
								ea5d1f5db8 
								
							 
						 
						
							
							
								
								Fixed instruction information for RDCCR and WRCCR.  
							
							... 
							
							
							
							Fixed selection to create a TmpInstruction for each integer CC register
(since it is an implicit side-effect, unlike FP CC registers which are
explicit operands).
llvm-svn: 1120 
							
						 
						
							2001-11-04 19:34:49 +00:00  
				
					
						
							
							
								 
						
							
								33d9cb9903 
								
							 
						 
						
							
							
								
								Minor method rename  
							
							... 
							
							
							
							llvm-svn: 1119 
							
						 
						
							2001-11-04 08:08:34 +00:00  
				
					
						
							
							
								 
						
							
								9d8950d240 
								
							 
						 
						
							
							
								
								Added code to support correct saving of %ccr across calls  
							
							... 
							
							
							
							llvm-svn: 1111 
							
						 
						
							2001-11-03 19:59:59 +00:00  
				
					
						
							
							
								 
						
							
								b7a397253f 
								
							 
						 
						
							
							
								
								Arranged stack frame - needs furhter organization  
							
							... 
							
							
							
							Moved InsertCallerSaveInstr to the SparcRegInfo.cpp
llvm-svn: 1106 
							
						 
						
							2001-11-03 17:13:27 +00:00  
				
					
						
							
							
								 
						
							
								41a8289eb8 
								
							 
						 
						
							
							
								
								Check in to use moved stringizing code  
							
							... 
							
							
							
							llvm-svn: 1024 
							
						 
						
							2001-10-29 13:39:38 +00:00  
				
					
						
							
							
								 
						
							
								5ff15721c9 
								
							 
						 
						
							
							
								
								Minor fix I omitted to check in.  
							
							... 
							
							
							
							llvm-svn: 1012 
							
						 
						
							2001-10-28 22:19:06 +00:00  
				
					
						
							
							
								 
						
							
								2f72cdd756 
								
							 
						 
						
							
							
								
								Generate SETX for 64-bit integers!  
							
							... 
							
							
							
							llvm-svn: 1007 
							
						 
						
							2001-10-28 21:41:46 +00:00  
				
					
						
							
							
								 
						
							
								a5619eb835 
								
							 
						 
						
							
							
								
								Add SETX instruction for 64-bit constants.  
							
							... 
							
							
							
							Add M_CC_FLAG for many instructions that use int or fp CC registers.
llvm-svn: 1006 
							
						 
						
							2001-10-28 21:41:01 +00:00  
				
					
						
							
							
								 
						
							
								b31f9c3ea6 
								
							 
						 
						
							
							
								
								Need to subtract, not add, stack size in SAVE instruction!  
							
							... 
							
							
							
							llvm-svn: 1005 
							
						 
						
							2001-10-28 21:39:47 +00:00  
				
					
						
							
							
								 
						
							
								71b265a848 
								
							 
						 
						
							
							
								
								Major overhaul to print globals and constants.  
							
							... 
							
							
							
							llvm-svn: 1004 
							
						 
						
							2001-10-28 21:38:52 +00:00  
				
					
						
							
							
								 
						
							
								9c38dbc249 
								
							 
						 
						
							
							
								
								Added support for spilling  
							
							... 
							
							
							
							llvm-svn: 992 
							
						 
						
							2001-10-28 18:15:12 +00:00  
				
					
						
							
							
								 
						
							
								0863c161e9 
								
							 
						 
						
							
							
								
								Fixed load syntax in EmitAssembly  
							
							... 
							
							
							
							Fixed cpReg2Mem (store) operand oreder in SparcRegInfo.cpp
llvm-svn: 984 
							
						 
						
							2001-10-24 22:05:34 +00:00  
				
					
						
							
							
								 
						
							
								36bcd79050 
								
							 
						 
						
							
							
								
								Fixed logic for checking whether a LR received the correct color.  
							
							... 
							
							
							
							llvm-svn: 976 
							
						 
						
							2001-10-24 15:56:58 +00:00  
				
					
						
							
							
								 
						
							
								6a7f02082b 
								
							 
						 
						
							
							
								
								Corrected a bug in SparcRegInfo.cpp - to add inserted instructions before a return  
							
							... 
							
							
							
							llvm-svn: 969 
							
						 
						
							2001-10-23 21:40:39 +00:00  
				
					
						
							
							
								 
						
							
								18a9e39214 
								
							 
						 
						
							
							
								
								UNUSED.  
							
							... 
							
							
							
							llvm-svn: 944 
							
						 
						
							2001-10-22 13:46:38 +00:00  
				
					
						
							
							
								 
						
							
								a0177cdca5 
								
							 
						 
						
							
							
								
								Split JMPL into JMPLCALL and JMPLRET.  
							
							... 
							
							
							
							llvm-svn: 943 
							
						 
						
							2001-10-22 13:44:53 +00:00  
				
					
						
							
							
								 
						
							
								9090b50ba9 
								
							 
						 
						
							
							
								
								Added a frame layout class, and code to insert prolog/epilog code.  
							
							... 
							
							
							
							llvm-svn: 942 
							
						 
						
							2001-10-22 13:44:23 +00:00  
				
					
						
							
							
								 
						
							
								5462dca9f1 
								
							 
						 
						
							
							
								
								Reordered registers slightly to simplify a new check.  
							
							... 
							
							
							
							Added a function to map between the caller's and callee's register windows.
llvm-svn: 941 
							
						 
						
							2001-10-22 13:43:08 +00:00  
				
					
						
							
							
								 
						
							
								8498277e77 
								
							 
						 
						
							
							
								
								Split JMPL into JMPLCALL and JMPLRET so that IsCall and IsReturn can  
							
							... 
							
							
							
							be used to distinguish those uses of the `jmpl' instruction.
llvm-svn: 940 
							
						 
						
							2001-10-22 13:41:12 +00:00  
				
					
						
							
							
								 
						
							
								52e41008e3 
								
							 
						 
						
							
							
								
								Added functions to generate prolog and epilog code.  
							
							... 
							
							
							
							Use JMPLRET instead of RETURN for method returns so that
llvm-svn: 939 
							
						 
						
							2001-10-22 13:36:31 +00:00  
				
					
						
							
							
								 
						
							
								6b492ddc15 
								
							 
						 
						
							
							
								
								Added SAVE and RESTORE.  Duplicated JMPL into JMPLCALL and JMPLRET,  
							
							... 
							
							
							
							which have the same opcode and operands but different flags.
llvm-svn: 938 
							
						 
						
							2001-10-22 13:32:55 +00:00  
				
					
						
							
							
								 
						
							
								7c1a8d6d53 
								
							 
						 
						
							
							
								
								Reordered a couple of registers to simplify some new checks.  
							
							... 
							
							
							
							Added code to map between caller's and callee's register windows.
Added frame layout class.
llvm-svn: 937 
							
						 
						
							2001-10-22 13:31:53 +00:00  
				
					
						
							
							
								 
						
							
								24729a34ce 
								
							 
						 
						
							
							
								
								Added support for both call/jmpl instructions  
							
							... 
							
							
							
							llvm-svn: 930 
							
						 
						
							2001-10-21 16:43:41 +00:00  
				
					
						
							
							
								 
						
							
								9bc488984f 
								
							 
						 
						
							
							
								
								Fixed printing of offset operand for RETURN instruction.  
							
							... 
							
							
							
							llvm-svn: 928 
							
						 
						
							2001-10-20 21:33:50 +00:00  
				
					
						
							
							
								 
						
							
								5731249137 
								
							 
						 
						
							
							
								
								Use CALL for direct function calls; JMPL for indirect ones.  
							
							... 
							
							
							
							llvm-svn: 927 
							
						 
						
							2001-10-20 20:57:06 +00:00  
				
					
						
							
							
								 
						
							
								72ebb454d0 
								
							 
						 
						
							
							
								
								Minor bug fix in printing operands of JMPL.  
							
							... 
							
							
							
							llvm-svn: 926 
							
						 
						
							2001-10-20 20:56:40 +00:00  
				
					
						
							
							
								 
						
							
								6a073498ba 
								
							 
						 
						
							
							
								
								Added code so that colorIGNode does not unnecessarily reserve unusable  
							
							... 
							
							
							
							Suggested colors for neighbors.
llvm-svn: 921 
							
						 
						
							2001-10-19 21:41:16 +00:00  
				
					
						
							
							
								 
						
							
								d77a1bbc2f 
								
							 
						 
						
							
							
								
								Corrected call interference bug - suggested color not allocated if  
							
							... 
							
							
							
							volatile and there are call interferences
llvm-svn: 918 
							
						 
						
							2001-10-19 17:23:43 +00:00  
				
					
						
							
							
								 
						
							
								5f629318fa 
								
							 
						 
						
							
							
								
								Added support for condition code loading/stroing in methods cpReg2Reg etc.  
							
							... 
							
							
							
							llvm-svn: 911 
							
						 
						
							2001-10-18 22:38:52 +00:00  
				
					
						
							
							
								 
						
							
								ee6e199f0e 
								
							 
						 
						
							
							
								
								Change Sources specifier to ExtraSources  
							
							... 
							
							
							
							llvm-svn: 874 
							
						 
						
							2001-10-18 01:48:09 +00:00  
				
					
						
							
							
								 
						
							
								6c697526bf 
								
							 
						 
						
							
							
								
								1. Move most of the constant-fixup code into machine-independent file  
							
							... 
							
							
							
							InstrSelectionSupport.cpp.  It now happens in a bottom-up pass on
   each BURG tree after the original top-down selection pass on the tree.
2. Handle global values as constants (viz., constant addresses).
llvm-svn: 868 
							
						 
						
							2001-10-18 00:26:20 +00:00  
				
					
						
							
							
								 
						
							
								cc776df39c 
								
							 
						 
						
							
							
								
								Sparc-specific code shared between local files.  
							
							... 
							
							
							
							llvm-svn: 864 
							
						 
						
							2001-10-18 00:03:20 +00:00  
				
					
						
							
							
								 
						
							
								01e57a481e 
								
							 
						 
						
							
							
								
								Moved implementation of class UltraSparcInstrInfo to SparcInstrInfo.cpp.  
							
							... 
							
							
							
							llvm-svn: 863 
							
						 
						
							2001-10-18 00:02:32 +00:00  
				
					
						
							
							
								 
						
							
								505130cb30 
								
							 
						 
						
							
							
								
								Added virtual function to generate an instruction sequence to  
							
							... 
							
							
							
							load a constant into a register.
llvm-svn: 862 
							
						 
						
							2001-10-18 00:02:06 +00:00  
				
					
						
							
							
								 
						
							
								4cc2b3b155 
								
							 
						 
						
							
							
								
								Moved implementation of class UltraSparcInstrInfo here.  
							
							... 
							
							
							
							llvm-svn: 861 
							
						 
						
							2001-10-18 00:01:48 +00:00  
				
					
						
							
							
								 
						
							
								6b4ba47f31 
								
							 
						 
						
							
							
								
								Only list automatically generated .cpp files.  
							
							... 
							
							
							
							llvm-svn: 854 
							
						 
						
							2001-10-17 12:34:26 +00:00  
				
					
						
							
							
								 
						
							
								5b8971f418 
								
							 
						 
						
							
							
								
								Added support for caller saving  
							
							... 
							
							
							
							llvm-svn: 847 
							
						 
						
							2001-10-16 01:23:19 +00:00  
				
					
						
							
							
								 
						
							
								3294e7c14b 
								
							 
						 
						
							
							
								
								Emit the proper .type declarations to tell the debugger what a function is  
							
							... 
							
							
							
							llvm-svn: 845 
							
						 
						
							2001-10-15 19:34:17 +00:00  
				
					
						
							
							
								 
						
							
								77d2c22d94 
								
							 
						 
						
							
							
								
								Handle abnormal jmpl syntax correctly  
							
							... 
							
							
							
							llvm-svn: 844 
							
						 
						
							2001-10-15 19:21:31 +00:00  
				
					
						
							
							
								 
						
							
								f3f1e452ea 
								
							 
						 
						
							
							
								
								Output to cerr rather than cout so that debug info doesn't mess up assembly generation  
							
							... 
							
							
							
							llvm-svn: 840 
							
						 
						
							2001-10-15 18:15:27 +00:00  
				
					
						
							
							
								 
						
							
								086bf0fe3a 
								
							 
						 
						
							
							
								
								updated suggesting/coloring of call & return args & implicit operands  
							
							... 
							
							
							
							llvm-svn: 830 
							
						 
						
							2001-10-15 16:25:28 +00:00  
				
					
						
							
							
								 
						
							
								02b671388e 
								
							 
						 
						
							
							
								
								Be const correct  
							
							... 
							
							
							
							llvm-svn: 826 
							
						 
						
							2001-10-15 15:54:43 +00:00  
				
					
						
							
							
								 
						
							
								e6c611b990 
								
							 
						 
						
							
							
								
								Forward operands into implicit uses as well as explicit ones.  
							
							... 
							
							
							
							llvm-svn: 808 
							
						 
						
							2001-10-14 23:28:43 +00:00  
				
					
						
							
							
								 
						
							
								1679709b71 
								
							 
						 
						
							
							
								
								Two bug fixes that were suppressing some "load-constant-into-register" instrs.  
							
							... 
							
							
							
							llvm-svn: 795 
							
						 
						
							2001-10-14 18:10:33 +00:00  
				
					
						
							
							
								 
						
							
								b3368ac9db 
								
							 
						 
						
							
							
								
								Move the burg file to here.  Add .in suffix to indicate that it gets  
							
							... 
							
							
							
							preprocessed before burg gets to it
llvm-svn: 794 
							
						 
						
							2001-10-14 17:26:21 +00:00  
				
					
						
							
							
								 
						
							
								1a176f15dc 
								
							 
						 
						
							
							
								
								Make the sparc.burg file be a little more flexible and rubust in the fact of  
							
							... 
							
							
							
							renumbering of instructions.  It is still horribly broken and grossly dependant on the number of instructions, but now it is a least a little better.
Oh yeah it also works now.
llvm-svn: 793 
							
						 
						
							2001-10-14 17:25:31 +00:00  
				
					
						
							
							
								 
						
							
								8deb9e588e 
								
							 
						 
						
							
							
								
								Fix broken #endif  
							
							... 
							
							
							
							llvm-svn: 768 
							
						 
						
							2001-10-13 06:54:54 +00:00  
				
					
						
							
							
								 
						
							
								a742b6acf3 
								
							 
						 
						
							
							
								
								* Add #include  
							
							... 
							
							
							
							* Fix #endif problems
* Change to getCalledValue instead of getCalledMethod
llvm-svn: 767 
							
						 
						
							2001-10-13 06:54:30 +00:00  
				
					
						
							
							
								 
						
							
								8aeb09fcc7 
								
							 
						 
						
							
							
								
								Record implicitRefs for each machine instruction instead of  
							
							... 
							
							
							
							each VM instruction.
llvm-svn: 725 
							
						 
						
							2001-10-11 04:23:19 +00:00  
				
					
						
							
							
								 
						
							
								021d523b2f 
								
							 
						 
						
							
							
								
								Insert code to load constants used as Call or Return arguments.  
							
							... 
							
							
							
							Also, note return value of a Call as an "implicitUse".
llvm-svn: 720 
							
						 
						
							2001-10-10 20:56:33 +00:00  
				
					
						
							
							
								 
						
							
								990d8fb3e8 
								
							 
						 
						
							
							
								
								--removed %g regs being allocated - fix later  
							
							... 
							
							
							
							llvm-svn: 714 
							
						 
						
							2001-10-09 23:36:13 +00:00  
				
					
						
							
							
								 
						
							
								7fac070215 
								
							 
						 
						
							
							
								
								* Both Method & GlobalVariable now subclass GlobalValue  
							
							... 
							
							
							
							* ConstPoolPointerReference now represents a pointer to a GlobalValue
* Methods name references are now explicit pointers to methods
* Rename Value::GlobalVal to Value::GlobalVariableVal to avoid confusion
llvm-svn: 703 
							
						 
						
							2001-10-03 14:53:21 +00:00  
				
					
						
							
							
								 
						
							
								da55810666 
								
							 
						 
						
							
							
								
								Commit more code over to new cast style  
							
							... 
							
							
							
							llvm-svn: 697 
							
						 
						
							2001-10-02 03:41:24 +00:00  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								8f19112923 
								
							 
						 
						
							
							
								
								Add more support for new style casts  
							
							... 
							
							
							
							Convert more code to use them
llvm-svn: 695 
							
						 
						
							2001-10-01 18:26:53 +00:00  
				
					
						
							
							
								 
						
							
								4b717c0edc 
								
							 
						 
						
							
							
								
								Add support for new style casts  
							
							... 
							
							
							
							llvm-svn: 694 
							
						 
						
							2001-10-01 16:18:37 +00:00  
				
					
						
							
							
								 
						
							
								0156ba6185 
								
							 
						 
						
							
							
								
								Fix emission of return instructions  
							
							... 
							
							
							
							llvm-svn: 688 
							
						 
						
							2001-10-01 02:32:34 +00:00  
				
					
						
							
							
								 
						
							
								3652ef7587 
								
							 
						 
						
							
							
								
								Several fixes:  
							
							... 
							
							
							
							(1) Avoid hard-coding some register numbers.
(2) Fix some incorrect branch opcodes.
(3) Don't try to move int register to float register!
(4) If an operand being forwarded is a constant and it doesn't fit
    into the immed field of the copy machine instruction, then
    generate a load-constant instead of a copy.
(5) Use (unsigned long) 0 for copying a pointer via "add 0, ptr -> ptr2".
llvm-svn: 683 
							
						 
						
							2001-10-01 00:12:53 +00:00  
				
					
						
							
							
								 
						
							
								40378e32cd 
								
							 
						 
						
							
							
								
								Change latency of setuw and setsw to 2 cycles.  
							
							... 
							
							
							
							llvm-svn: 681 
							
						 
						
							2001-09-30 23:46:57 +00:00  
				
					
						
							
							
								 
						
							
								560b0ad482 
								
							 
						 
						
							
							
								
								added suggesting color support  
							
							... 
							
							
							
							llvm-svn: 673 
							
						 
						
							2001-09-30 23:19:57 +00:00  
				
					
						
							
							
								 
						
							
								5867c7ae80 
								
							 
						 
						
							
							
								
								added support for suggesting colors  
							
							... 
							
							
							
							llvm-svn: 671 
							
						 
						
							2001-09-30 23:16:47 +00:00  
				
					
						
							
							
								 
						
							
								b021f68438 
								
							 
						 
						
							
							
								
								* Properly escape function names  
							
							... 
							
							
							
							* Ignore %xcc argument on conditional branches
llvm-svn: 663 
							
						 
						
							2001-09-28 15:07:24 +00:00  
				
					
						
							
							
								 
						
							
								c6635c9fa2 
								
							 
						 
						
							
							
								
								Check in bug fix for vadve  
							
							... 
							
							
							
							llvm-svn: 662 
							
						 
						
							2001-09-28 15:06:55 +00:00  
				
					
						
							
							
								 
						
							
								ebd284dfe9 
								
							 
						 
						
							
							
								
								-- fixed a ret val bug  
							
							... 
							
							
							
							llvm-svn: 652 
							
						 
						
							2001-09-19 22:40:51 +00:00  
				
					
						
							
							
								 
						
							
								e86a0230aa 
								
							 
						 
						
							
							
								
								Seperate instruction definitions into new SparcInstr.def file  
							
							... 
							
							
							
							Move contents of SparcMachineInstrDesc[] out of SparcInternals.h
into Sparc.cpp
llvm-svn: 644 
							
						 
						
							2001-09-19 15:56:23 +00:00  
				
					
						
							
							
								 
						
							
								49726a21a5 
								
							 
						 
						
							
							
								
								Add EmitAssembly to mf  
							
							... 
							
							
							
							llvm-svn: 637 
							
						 
						
							2001-09-19 13:48:18 +00:00  
				
					
						
							
							
								 
						
							
								036a317f2a 
								
							 
						 
						
							
							
								
								First cut at assembly output  
							
							... 
							
							
							
							llvm-svn: 636 
							
						 
						
							2001-09-19 13:47:27 +00:00  
				
					
						
							
							
								 
						
							
								518da4f3cd 
								
							 
						 
						
							
							
								
								Add emitAssemblyMethod to TargetMachine  
							
							... 
							
							
							
							llvm-svn: 635 
							
						 
						
							2001-09-19 13:47:12 +00:00  
				
					
						
							
							
								 
						
							
								dfc6c887da 
								
							 
						 
						
							
							
								
								-- ruchira  
							
							... 
							
							
							
							llvm-svn: 632 
							
						 
						
							2001-09-18 22:52:44 +00:00  
				
					
						
							
							
								 
						
							
								caa449cf5c 
								
							 
						 
						
							
							
								
								Remove extraneous #includes  
							
							... 
							
							
							
							llvm-svn: 627 
							
						 
						
							2001-09-18 17:03:48 +00:00  
				
					
						
							
							
								 
						
							
								4d86cc2842 
								
							 
						 
						
							
							
								
								Renamed files to match the primary classes they provide.  
							
							... 
							
							
							
							llvm-svn: 620 
							
						 
						
							2001-09-18 13:10:05 +00:00  
				
					
						
							
							
								 
						
							
								8dd5e310e0 
								
							 
						 
						
							
							
								
								Renamed a header file.  
							
							... 
							
							
							
							llvm-svn: 619 
							
						 
						
							2001-09-18 13:04:53 +00:00  
				
					
						
							
							
								 
						
							
								514180ed83 
								
							 
						 
						
							
							
								
								Make class TargetMachine the common interface to all target-dependent  
							
							... 
							
							
							
							information, including instr, sched, and reg information.
This allows us to allocate them all in one place and use them much
more uniformly.
llvm-svn: 618 
							
						 
						
							2001-09-18 13:04:24 +00:00  
				
					
						
							
							
								 
						
							
								78d50d0f7a 
								
							 
						 
						
							
							
								
								Allow pointer constants as well as integer and booleans.  
							
							... 
							
							
							
							Skip over list nodes in ForwardOperand.
llvm-svn: 617 
							
						 
						
							2001-09-18 13:03:13 +00:00  
				
					
						
							
							
								 
						
							
								49d908a419 
								
							 
						 
						
							
							
								
								Make class TargetMachine the common interface to all target-dependent  
							
							... 
							
							
							
							information, including instr, sched, and reg information.
Rename files to match the primary classes they provide.
Commented out call to register allocation until more tests run correctly.
llvm-svn: 616 
							
						 
						
							2001-09-18 13:01:29 +00:00  
				
					
						
							
							
								 
						
							
								6cefc7072d 
								
							 
						 
						
							
							
								
								Renamed files to match the main classes they provide.  
							
							... 
							
							
							
							Some other minor changes.
llvm-svn: 615 
							
						 
						
							2001-09-18 12:58:33 +00:00  
				
					
						
							
							
								 
						
							
								970886e738 
								
							 
						 
						
							
							
								
								modified printing of debug messages  
							
							... 
							
							
							
							llvm-svn: 593 
							
						 
						
							2001-09-15 19:11:31 +00:00  
				
					
						
							
							
								 
						
							
								7d144a8500 
								
							 
						 
						
							
							
								
								added register allocation code  
							
							... 
							
							
							
							llvm-svn: 585 
							
						 
						
							2001-09-15 00:30:44 +00:00  
				
					
						
							
							
								 
						
							
								dfdab46dc1 
								
							 
						 
						
							
							
								
								*** empty log message ***  
							
							... 
							
							
							
							llvm-svn: 579 
							
						 
						
							2001-09-14 20:31:39 +00:00  
				
					
						
							
							
								 
						
							
								95c652b59b 
								
							 
						 
						
							
							
								
								Add support for loading and storing pointers...  
							
							... 
							
							
							
							llvm-svn: 575 
							
						 
						
							2001-09-14 20:00:02 +00:00  
				
					
						
							
							
								 
						
							
								ad2cbf0e18 
								
							 
						 
						
							
							
								
								Fix a bug that caused a crash if a setcc had zero uses.  
							
							... 
							
							
							
							llvm-svn: 574 
							
						 
						
							2001-09-14 18:29:28 +00:00  
				
					
						
							
							
								 
						
							
								8d44b99844 
								
							 
						 
						
							
							
								
								Chris seems fond of #include <vector>.  Fix these. Also convert use list in  
							
							... 
							
							
							
							Value to a vector instead of a list.
Move SchedGraph.h & SchedPriorities.h into lib/CodeGen/InstrScheduling
llvm-svn: 572 
							
						 
						
							2001-09-14 16:56:32 +00:00  
				
					
						
							
							
								 
						
							
								1680fb1617 
								
							 
						 
						
							
							
								
								Add a comment  
							
							... 
							
							
							
							llvm-svn: 571 
							
						 
						
							2001-09-14 16:08:12 +00:00  
				
					
						
							
							
								 
						
							
								6875e9cc97 
								
							 
						 
						
							
							
								
								Break scheduling infrastructure out of TargetMachine.cpp into SchedInfo.cpp  
							
							... 
							
							
							
							llvm-svn: 569 
							
						 
						
							2001-09-14 15:43:58 +00:00  
				
					
						
							
							
								 
						
							
								87b3bf630b 
								
							 
						 
						
							
							
								
								Split Target/Machine.h into three files:  
							
							... 
							
							
							
							* Machine.h
* InstInfo.h
* SchedInfo.h
TODO: Split out reg info stuff
llvm-svn: 567 
							
						 
						
							2001-09-14 06:08:03 +00:00  
				
					
						
							
							
								 
						
							
								22a6a90511 
								
							 
						 
						
							
							
								
								Make a new llvm/Target #include directory.  
							
							... 
							
							
							
							Move files from lib/CodeGen/TargetMachine to lib/Target
Move TargetData.h and TargetMachine.h to Target/{Data.h|Machine.h}
Prepare to split TargetMachine.h into several smaller files
llvm-svn: 566 
							
						 
						
							2001-09-14 05:34:53 +00:00  
				
					
						
							
							
								 
						
							
								f8464e4b8d 
								
							 
						 
						
							
							
								
								Checkin changes to:  
							
							... 
							
							
							
							1. Clean up the TargetMachine structure.  No more wierd pointers that have to
   be cast around and taken care of by the target.
2. Instruction Scheduling now takes the schedinfo as an argument.  The same
   should be done with the instinfo, it just isn't now.
llvm-svn: 565 
							
						 
						
							2001-09-14 04:32:55 +00:00  
				
					
						
							
							
								 
						
							
								5fae0de330 
								
							 
						 
						
							
							
								
								Move files to new sparc directory  
							
							... 
							
							
							
							llvm-svn: 563 
							
						 
						
							2001-09-14 03:56:45 +00:00  
				
					
						
							
							
								 
						
							
								06028541ab 
								
							 
						 
						
							
							
								
								Move the sparc target to a new lib/Target directory  
							
							... 
							
							
							
							llvm-svn: 562 
							
						 
						
							2001-09-14 03:55:11 +00:00  
				
					
						
							
							
								 
						
							
								b0ddffaae3 
								
							 
						 
						
							
							
								
								Move files.  
							
							... 
							
							
							
							llvm-svn: 561 
							
						 
						
							2001-09-14 03:47:57 +00:00