7a7085f6d3 
								
							 
						 
						
							
							
								
								Add parameter to getDwarfRegNum to permit targets  
							
							... 
							
							
							
							to use different mappings for EH and debug info;
no functional change yet.
Fix warning in X86CodeEmitter.
llvm-svn: 44056 
							
						 
						
							2007-11-13 19:13:01 +00:00  
				
					
						
							
							
								 
						
							
								77b13af9a6 
								
							 
						 
						
							
							
								
								Unifacalize the CALLSEQ{START,END} stuff.  
							
							... 
							
							
							
							llvm-svn: 44045 
							
						 
						
							2007-11-13 09:19:02 +00:00  
				
					
						
							
							
								 
						
							
								f359fed9f9 
								
							 
						 
						
							
							
								
								Unify CALLSEQ_{START,END}. They take 4 parameters: the chain, two stack  
							
							... 
							
							
							
							adjustment fields, and an optional flag. If there is a "dynamic_stackalloc" in
the code, make sure that it's bracketed by CALLSEQ_START and CALLSEQ_END. If
not, then there is the potential for the stack to be changed while the stack's
being used by another instruction (like a call).
This can only result in tears...
llvm-svn: 44037 
							
						 
						
							2007-11-13 00:44:25 +00:00  
				
					
						
							
							
								 
						
							
								4edfea438a 
								
							 
						 
						
							
							
								
								Use TableGen to emit information for dwarf register numbers.  
							
							... 
							
							
							
							This makes DwarfRegNum to accept list of numbers instead.
Added three different "flavours", but only slightly tested on x86-32/linux.
Please check another subtargets if possible,
llvm-svn: 43997 
							
						 
						
							2007-11-11 19:50:10 +00:00  
				
					
						
							
							
								 
						
							
								283207a71c 
								
							 
						 
						
							
							
								
								Eliminate the remaining uses of getTypeSize.  This  
							
							... 
							
							
							
							should only effect x86 when using long double.  Now
12/16 bytes are output for long double globals (the
exact amount depends on the alignment).  This brings
globals in line with the rest of LLVM: the space
reserved for an object is now always the ABI size.
One tricky point is that only 10 bytes should be
output for long double if it is a field in a packed
struct, which is the reason for the additional
argument to EmitGlobalConstant.
llvm-svn: 43688 
							
						 
						
							2007-11-05 00:04:43 +00:00  
				
					
						
							
							
								 
						
							
								463e2ab0ac 
								
							 
						 
						
							
							
								
								- Added getOpcodeAfterMemoryUnfold(). It doesn't unfold an instruction, but only returns the opcode of the instruction post unfolding.  
							
							... 
							
							
							
							- Fix some copy+paste bugs.
llvm-svn: 43153 
							
						 
						
							2007-10-18 22:40:57 +00:00  
				
					
						
							
							
								 
						
							
								aa9a225699 
								
							 
						 
						
							
							
								
								Use SmallVectorImpl instead of SmallVector with hardcoded size in MRegister public interface.  
							
							... 
							
							
							
							llvm-svn: 43150 
							
						 
						
							2007-10-18 21:29:24 +00:00  
				
					
						
							
							
								 
						
							
								cdf3609130 
								
							 
						 
						
							
							
								
								Revert 42908 for now.  
							
							... 
							
							
							
							llvm-svn: 42960 
							
						 
						
							2007-10-14 05:57:21 +00:00  
				
					
						
							
							
								 
						
							
								dc35bd79ca 
								
							 
						 
						
							
							
								
								Change the names used for internal labels to use the current  
							
							... 
							
							
							
							function symbol name instead of a codegen-assigned function
number.
Thanks Evan! :-)
llvm-svn: 42908 
							
						 
						
							2007-10-12 14:53:36 +00:00  
				
					
						
							
							
								 
						
							
								482732af9d 
								
							 
						 
						
							
							
								
								Set ISD::FPOW to Expand.  
							
							... 
							
							
							
							llvm-svn: 42881 
							
						 
						
							2007-10-11 23:21:31 +00:00  
				
					
						
							
							
								 
						
							
								d9c9c919da 
								
							 
						 
						
							
							
								
								Fix CodeGen/Generic/BasicInstrs.llx on sparc by marking divrem  
							
							... 
							
							
							
							illegal.  Thanks to gabor for pointing this out!
llvm-svn: 42832 
							
						 
						
							2007-10-10 18:10:57 +00:00  
				
					
						
							
							
								 
						
							
								f4cf5dcdd2 
								
							 
						 
						
							
							
								
								- Added a few target hooks to generate load / store instructions from / to any  
							
							... 
							
							
							
							address (not just from / to frameindexes).
- Added target hooks to unfold load / store instructions / SDNodes into separate
load, data processing, store instructions / SDNodes.
llvm-svn: 42621 
							
						 
						
							2007-10-05 01:32:41 +00:00  
				
					
						
							
							
								 
						
							
								c1e4e3743b 
								
							 
						 
						
							
							
								
								Allow copyRegToReg to emit cross register classes copies.  
							
							... 
							
							
							
							Tested with "make check"!
llvm-svn: 42346 
							
						 
						
							2007-09-26 06:25:56 +00:00  
				
					
						
							
							
								 
						
							
								57211c5550 
								
							 
						 
						
							
							
								
								More explicit keywords.  
							
							... 
							
							
							
							llvm-svn: 42316 
							
						 
						
							2007-09-25 20:27:06 +00:00  
				
					
						
							
							
								 
						
							
								3e18e504ae 
								
							 
						 
						
							
							
								
								Remove (somewhat confusing) Imp<> helper, use let Defs = [], Uses = [] instead.  
							
							... 
							
							
							
							llvm-svn: 41863 
							
						 
						
							2007-09-11 19:55:27 +00:00  
				
					
						
							
							
								 
						
							
								86e0119822 
								
							 
						 
						
							
							
								
								Fold the adjust_trampoline intrinsic into  
							
							... 
							
							
							
							init_trampoline.  There is now only one
trampoline intrinsic.
llvm-svn: 41841 
							
						 
						
							2007-09-11 14:10:23 +00:00  
				
					
						
							
							
								 
						
							
								e2f23a3abf 
								
							 
						 
						
							
							
								
								Add lengthof and endof templates that hide a lot of sizeof computations.  
							
							... 
							
							
							
							Patch by Sterling Stein!
llvm-svn: 41758 
							
						 
						
							2007-09-07 04:06:50 +00:00  
				
					
						
							
							
								 
						
							
								9a25d98c86 
								
							 
						 
						
							
							
								
								Add a variant of foldMemoryOperand to fold any load / store, not just load / store from / to stack slots.  
							
							... 
							
							
							
							llvm-svn: 41597 
							
						 
						
							2007-08-30 05:52:20 +00:00  
				
					
						
							
							
								 
						
							
								c5283ecd6f 
								
							 
						 
						
							
							
								
								long double patch 2 of N.  Handle it in TargetData.  
							
							... 
							
							
							
							(I've tried to get the info right for all targets,
but I'm not expert on all of them - check yours.)
llvm-svn: 40792 
							
						 
						
							2007-08-03 20:20:50 +00:00  
				
					
						
							
							
								 
						
							
								644f917358 
								
							 
						 
						
							
							
								
								Support for trampolines, except for X86 codegen which is  
							
							... 
							
							
							
							still under discussion.
llvm-svn: 40549 
							
						 
						
							2007-07-27 12:58:54 +00:00  
				
					
						
							
							
								 
						
							
								cf0a5349de 
								
							 
						 
						
							
							
								
								Don't ignore the return value of AsmPrinter::doInitialization and  
							
							... 
							
							
							
							AsmPrinter::doFinalization.
llvm-svn: 40487 
							
						 
						
							2007-07-25 19:33:14 +00:00  
				
					
						
							
							
								 
						
							
								ac1591be42 
								
							 
						 
						
							
							
								
								No more noResults.  
							
							... 
							
							
							
							llvm-svn: 40132 
							
						 
						
							2007-07-21 00:34:19 +00:00  
				
					
						
							
							
								 
						
							
								94b5a80b93 
								
							 
						 
						
							
							
								
								Change instruction description to split OperandList into OutOperandList and  
							
							... 
							
							
							
							InOperandList. This gives one piece of important information: # of results
produced by an instruction.
An example of the change:
def ADD32rr  : I<0x01, MRMDestReg, (ops GR32:$dst, GR32:$src1, GR32:$src2),
                 "add{l} {$src2, $dst|$dst, $src2}",
                 [(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>;
=>
def ADD32rr  : I<0x01, MRMDestReg, (outs GR32:$dst), (ins GR32:$src1, GR32:$src2),
                 "add{l} {$src2, $dst|$dst, $src2}",
                 [(set GR32:$dst, (add GR32:$src1, GR32:$src2))]>;
llvm-svn: 40033 
							
						 
						
							2007-07-19 01:14:50 +00:00  
				
					
						
							
							
								 
						
							
								383a324735 
								
							 
						 
						
							
							
								
								Long live the exception handling!  
							
							... 
							
							
							
							This patch fills the last necessary bits to enable exceptions
handling in LLVM. Currently only on x86-32/linux.
In fact, this patch adds necessary intrinsics (and their lowering) which
represent really weird target-specific gcc builtins used inside unwinder.
After corresponding llvm-gcc patch will land (easy) exceptions should be
more or less workable. However, exceptions handling support should not be 
thought as 'finished': I expect many small and not so small glitches
everywhere.
llvm-svn: 39855 
							
						 
						
							2007-07-14 14:06:15 +00:00  
				
					
						
							
							
								 
						
							
								1fae1cd3e1 
								
							 
						 
						
							
							
								
								Fix for PR1540: Specify F0, F1 are sub-registers of D0, etc.  
							
							... 
							
							
							
							llvm-svn: 39843 
							
						 
						
							2007-07-13 23:55:50 +00:00  
				
					
						
							
							
								 
						
							
								2b4d9b684f 
								
							 
						 
						
							
							
								
								Fix CodeGen/Generic/print-arith-fp.ll on sparc (PR1551)  
							
							... 
							
							
							
							llvm-svn: 39813 
							
						 
						
							2007-07-13 16:24:10 +00:00  
				
					
						
							
							
								 
						
							
								09d73c0305 
								
							 
						 
						
							
							
								
								Assert when TLS is not implemented.  
							
							... 
							
							
							
							llvm-svn: 39737 
							
						 
						
							2007-07-11 17:19:51 +00:00  
				
					
						
							
							
								 
						
							
								6e544a9cca 
								
							 
						 
						
							
							
								
								Fix an oversight: for modules with no other identifying target info,  
							
							... 
							
							
							
							the sparc backend should be preferred when running on sparcs.
llvm-svn: 39142 
							
						 
						
							2007-07-11 16:32:10 +00:00  
				
					
						
							
							
								 
						
							
								517290ae52 
								
							 
						 
						
							
							
								
								The various "getModuleMatchQuality" implementations should return  
							
							... 
							
							
							
							zero if they see a target triple they don't understand.
llvm-svn: 38463 
							
						 
						
							2007-07-09 17:25:29 +00:00  
				
					
						
							
							
								 
						
							
								2660cef6d7 
								
							 
						 
						
							
							
								
								Convert .cvsignore files  
							
							... 
							
							
							
							llvm-svn: 37801 
							
						 
						
							2007-06-29 16:35:07 +00:00  
				
					
						
							
							
								 
						
							
								309d3d51b3 
								
							 
						 
						
							
							
								
								Move ComputeMaskedBits, MaskedValueIsZero, and ComputeNumSignBits from  
							
							... 
							
							
							
							TargetLowering to SelectionDAG so that they have more convenient
access to the current DAG, in preparation for the ValueType routines
being changed from standalone functions to members of SelectionDAG for
the pre-legalize vector type changes.
llvm-svn: 37704 
							
						 
						
							2007-06-22 14:59:07 +00:00  
				
					
						
							
							
								 
						
							
								e20dd92792 
								
							 
						 
						
							
							
								
								RemoveBranch() and InsertBranch() now returns number of instructions deleted / inserted.  
							
							... 
							
							
							
							llvm-svn: 37193 
							
						 
						
							2007-05-18 00:18:17 +00:00  
				
					
						
							
							
								 
						
							
								8c78a0bff0 
								
							 
						 
						
							
							
								
								Drop 'const'  
							
							... 
							
							
							
							llvm-svn: 36662 
							
						 
						
							2007-05-03 01:11:54 +00:00  
				
					
						
							
							
								 
						
							
								e95c6ad802 
								
							 
						 
						
							
							
								
								Use 'static const char' instead of 'static const int'.  
							
							... 
							
							
							
							Due to darwin gcc bug, one version of darwin linker coalesces
static const int, which defauts PassID based pass identification.
llvm-svn: 36652 
							
						 
						
							2007-05-02 21:39:20 +00:00  
				
					
						
							
							
								 
						
							
								09f162ca6a 
								
							 
						 
						
							
							
								
								Do not use typeinfo to identify pass in pass manager.  
							
							... 
							
							
							
							llvm-svn: 36632 
							
						 
						
							2007-05-01 21:15:47 +00:00  
				
					
						
							
							
								 
						
							
								5662b21db1 
								
							 
						 
						
							
							
								
								eliminateFrameIndex() change.  
							
							... 
							
							
							
							llvm-svn: 36626 
							
						 
						
							2007-05-01 09:13:03 +00:00  
				
					
						
							
							
								 
						
							
								61f39d186c 
								
							 
						 
						
							
							
								
								Added MRegisterInfo hook to re-materialize an instruction.  
							
							... 
							
							
							
							llvm-svn: 35205 
							
						 
						
							2007-03-20 08:09:38 +00:00  
				
					
						
							
							
								 
						
							
								ed4b303c10 
								
							 
						 
						
							
							
								
								Refactoring of formal parameter flags. Enable properly use of  
							
							... 
							
							
							
							zext/sext/aext stuff.
llvm-svn: 35008 
							
						 
						
							2007-03-07 16:25:09 +00:00  
				
					
						
							
							
								 
						
							
								95ae95a6a6 
								
							 
						 
						
							
							
								
								PEI now passes a RegScavenger ptr to eliminateFrameIndex.  
							
							... 
							
							
							
							llvm-svn: 34707 
							
						 
						
							2007-02-28 00:21:17 +00:00  
				
					
						
							
							
								 
						
							
								df5899258c 
								
							 
						 
						
							
							
								
								By default, spills kills the register being stored.  
							
							... 
							
							
							
							llvm-svn: 34515 
							
						 
						
							2007-02-23 01:10:04 +00:00  
				
					
						
							
							
								 
						
							
								e0008e23cf 
								
							 
						 
						
							
							
								
								Simplify lowering and selection of exception ops.  
							
							... 
							
							
							
							llvm-svn: 34488 
							
						 
						
							2007-02-22 14:56:36 +00:00  
				
					
						
							
							
								 
						
							
								3796abea0f 
								
							 
						 
						
							
							
								
								Support to provide exception and selector registers.  
							
							... 
							
							
							
							llvm-svn: 34482 
							
						 
						
							2007-02-21 22:54:50 +00:00  
				
					
						
							
							
								 
						
							
								f7ed82da10 
								
							 
						 
						
							
							
								
								Re-apply my liveintervalanalysis changes. Now with PR1207 fixes.  
							
							... 
							
							
							
							llvm-svn: 34428 
							
						 
						
							2007-02-19 21:49:54 +00:00  
				
					
						
							
							
								 
						
							
								da81bf4d3e 
								
							 
						 
						
							
							
								
								For PR1207:  
							
							... 
							
							
							
							Revert patches that caused the problem. Evan, please investigate and reapply
when you've discovered the problem.
llvm-svn: 34399 
							
						 
						
							2007-02-19 03:20:00 +00:00  
				
					
						
							
							
								 
						
							
								9865be6d40 
								
							 
						 
						
							
							
								
								Added getReservedRegs().  
							
							... 
							
							
							
							llvm-svn: 34376 
							
						 
						
							2007-02-17 11:06:00 +00:00  
				
					
						
							
							
								 
						
							
								945e437c65 
								
							 
						 
						
							
							
								
								Generalize TargetData strings, to support more interesting forms of data.  
							
							... 
							
							
							
							Patch by Scott Michel.
llvm-svn: 34266 
							
						 
						
							2007-02-14 05:52:17 +00:00  
				
					
						
							
							
								 
						
							
								eda5997cc8 
								
							 
						 
						
							
							
								
								Finish off bug 680, allowing targets to custom lower frame and return  
							
							... 
							
							
							
							address nodes.
llvm-svn: 33636 
							
						 
						
							2007-01-29 22:58:52 +00:00  
				
					
						
							
							
								 
						
							
								f9e5445ed4 
								
							 
						 
						
							
							
								
								Make LABEL a builtin opcode.  
							
							... 
							
							
							
							llvm-svn: 33537 
							
						 
						
							2007-01-26 14:34:52 +00:00  
				
					
						
							
							
								 
						
							
								16e58be1bc 
								
							 
						 
						
							
							
								
								hasFP() is now a virtual method of MRegisterInfo.  
							
							... 
							
							
							
							llvm-svn: 33455 
							
						 
						
							2007-01-23 00:57:47 +00:00  
				
					
						
							
							
								 
						
							
								50ee0e40e5 
								
							 
						 
						
							
							
								
								Teach TargetData to handle 'preferred' alignment for each target, and use  
							
							... 
							
							
							
							these alignment amounts to align scalars when we can.  Patch by Scott Michel!
llvm-svn: 33409 
							
						 
						
							2007-01-20 22:35:55 +00:00  
				
					
						
							
							
								 
						
							
								74b46e8c05 
								
							 
						 
						
							
							
								
								Fix naming inconsistency.  
							
							... 
							
							
							
							llvm-svn: 32823 
							
						 
						
							2007-01-02 21:33:40 +00:00  
				
					
						
							
							
								 
						
							
								e63b6518fa 
								
							 
						 
						
							
							
								
								For PR950:  
							
							... 
							
							
							
							Three changes:
1. Convert signed integer types to signless versions.
2. Implement the @sext and @zext parameter attributes. Previously the
   type of an function parameter was used to determine whether it should
   be sign extended or zero extended before the call. This information is
   now communicated via the function type's parameter attributes.
3. The interface to LowerCallTo had to be changed in order to accommodate
   the parameter attribute information. Although it would have been
   convenient to pass in the FunctionType itself, there isn't always one
   present in the caller. Consequently, a signedness indication for the
   result type and for each parameter was provided for in the interface
   to this method. All implementations were changed to make the adjustment
   necessary.
llvm-svn: 32788 
							
						 
						
							2006-12-31 05:55:36 +00:00  
				
					
						
							
							
								 
						
							
								1ef9cd400d 
								
							 
						 
						
							
							
								
								eliminate static ctors for Statistic objects.  
							
							... 
							
							
							
							llvm-svn: 32703 
							
						 
						
							2006-12-19 22:59:26 +00:00  
				
					
						
							
							
								 
						
							
								9bfb1e1f29 
								
							 
						 
						
							
							
								
								What should be the last unnecessary <iostream>s in the library.  
							
							... 
							
							
							
							llvm-svn: 32333 
							
						 
						
							2006-12-07 22:21:48 +00:00  
				
					
						
							
							
								 
						
							
								700b873130 
								
							 
						 
						
							
							
								
								Detemplatize the Statistic class.  The only type it is instantiated with  
							
							... 
							
							
							
							is 'unsigned'.
llvm-svn: 32279 
							
						 
						
							2006-12-06 17:46:33 +00:00  
				
					
						
							
							
								 
						
							
								81cf22d873 
								
							 
						 
						
							
							
								
								These asm printers shouldn't use assembly/writer.h  
							
							... 
							
							
							
							llvm-svn: 32262 
							
						 
						
							2006-12-06 06:13:25 +00:00  
				
					
						
							
							
								 
						
							
								aafeaef8c8 
								
							 
						 
						
							
							
								
								MachineInstr::setOpcode -> MachineInstr::setInstrDescriptor  
							
							... 
							
							
							
							llvm-svn: 32034 
							
						 
						
							2006-11-30 07:12:03 +00:00  
				
					
						
							
							
								 
						
							
								20350c4025 
								
							 
						 
						
							
							
								
								Change MachineInstr ctor's to take a TargetInstrDescriptor reference instead  
							
							... 
							
							
							
							of opcode and number of operands.
llvm-svn: 31947 
							
						 
						
							2006-11-27 23:37:22 +00:00  
				
					
						
							
							
								 
						
							
								dc2c8748a7 
								
							 
						 
						
							
							
								
								Properly transfer kill / dead info.  
							
							... 
							
							
							
							llvm-svn: 31765 
							
						 
						
							2006-11-15 20:58:11 +00:00  
				
					
						
							
							
								 
						
							
								dbd3d294e6 
								
							 
						 
						
							
							
								
								Matches MachineInstr changes.  
							
							... 
							
							
							
							llvm-svn: 31712 
							
						 
						
							2006-11-13 23:36:35 +00:00  
				
					
						
							
							
								 
						
							
								6cd0909da7 
								
							 
						 
						
							
							
								
								Match tblegen changes.  
							
							... 
							
							
							
							llvm-svn: 31571 
							
						 
						
							2006-11-08 20:34:28 +00:00  
				
					
						
							
							
								 
						
							
								eb7128465d 
								
							 
						 
						
							
							
								
								remove redundant/dead vars  
							
							... 
							
							
							
							llvm-svn: 31434 
							
						 
						
							2006-11-03 23:47:20 +00:00  
				
					
						
							
							
								 
						
							
								71f55131d4 
								
							 
						 
						
							
							
								
								silence warnings  
							
							... 
							
							
							
							llvm-svn: 31392 
							
						 
						
							2006-11-03 01:11:05 +00:00  
				
					
						
							
							
								 
						
							
								de46e48420 
								
							 
						 
						
							
							
								
								For PR786:  
							
							... 
							
							
							
							Turn on -Wunused and -Wno-unused-parameter. Clean up most of the resulting
fall out by removing unused variables. Remaining warnings have to do with
unused functions (I didn't want to delete code without review) and unused
variables in generated code. Maintainers should clean up the remaining
issues when they see them. All changes pass DejaGnu tests and Olden.
llvm-svn: 31380 
							
						 
						
							2006-11-02 20:25:50 +00:00  
				
					
						
							
							
								 
						
							
								0d41d19427 
								
							 
						 
						
							
							
								
								All targets expand BR_JT for now.  
							
							... 
							
							
							
							llvm-svn: 31294 
							
						 
						
							2006-10-30 08:02:39 +00:00  
				
					
						
							
							
								 
						
							
								a6873c0f88 
								
							 
						 
						
							
							
								
								don't dist internal readme  
							
							... 
							
							
							
							llvm-svn: 31247 
							
						 
						
							2006-10-28 00:51:15 +00:00  
				
					
						
							
							
								 
						
							
								ed32883b27 
								
							 
						 
						
							
							
								
								fix warning about missing newline at end of file  
							
							... 
							
							
							
							llvm-svn: 31162 
							
						 
						
							2006-10-24 17:07:11 +00:00  
				
					
						
							
							
								 
						
							
								b7267bd034 
								
							 
						 
						
							
							
								
								implement uncond branch insertion for sparc to fix regressions from last night  
							
							... 
							
							
							
							due to branchfolding
llvm-svn: 31157 
							
						 
						
							2006-10-24 16:39:19 +00:00  
				
					
						
							
							
								 
						
							
								ab51cf2e78 
								
							 
						 
						
							
							
								
								Merge ISD::TRUNCSTORE to ISD::STORE. Switch to using StoreSDNode.  
							
							... 
							
							
							
							llvm-svn: 30945 
							
						 
						
							2006-10-13 21:14:26 +00:00  
				
					
						
							
							
								 
						
							
								d376e9f4ac 
								
							 
						 
						
							
							
								
								adjcallstackup/down clobbers the stack pointer  
							
							... 
							
							
							
							llvm-svn: 30909 
							
						 
						
							2006-10-12 17:57:58 +00:00  
				
					
						
							
							
								 
						
							
								577ef7694e 
								
							 
						 
						
							
							
								
								Add properties to ComplexPattern.  
							
							... 
							
							
							
							llvm-svn: 30891 
							
						 
						
							2006-10-11 21:03:53 +00:00  
				
					
						
							
							
								 
						
							
								e71fe34d75 
								
							 
						 
						
							
							
								
								Reflects ISD::LOAD / ISD::LOADX / LoadSDNode changes.  
							
							... 
							
							
							
							llvm-svn: 30844 
							
						 
						
							2006-10-09 20:57:25 +00:00  
				
					
						
							
							
								 
						
							
								df9ac47e5e 
								
							 
						 
						
							
							
								
								Make use of getStore().  
							
							... 
							
							
							
							llvm-svn: 30759 
							
						 
						
							2006-10-05 23:01:46 +00:00  
				
					
						
							
							
								 
						
							
								d4d255a408 
								
							 
						 
						
							
							
								
								Use getSectionForFunction  
							
							... 
							
							
							
							llvm-svn: 30739 
							
						 
						
							2006-10-05 02:48:40 +00:00  
				
					
						
							
							
								 
						
							
								5d9fd977d3 
								
							 
						 
						
							
							
								
								Combine ISD::EXTLOAD, ISD::SEXTLOAD, ISD::ZEXTLOAD into ISD::LOADX. Add an  
							
							... 
							
							
							
							extra operand to LOADX to specify the exact value extension type.
llvm-svn: 30714 
							
						 
						
							2006-10-04 00:56:09 +00:00  
				
					
						
							
							
								 
						
							
								d61d39ec53 
								
							 
						 
						
							
							
								
								Adding dllimport, dllexport and external weak linkage types.  
							
							... 
							
							
							
							DLL* linkages got full (I hope) codegeneration support in C & both x86
assembler backends.
External weak linkage added for future use, we don't provide any
codegeneration, etc. support for it.
llvm-svn: 30374 
							
						 
						
							2006-09-14 18:23:27 +00:00  
				
					
						
							
							
								 
						
							
								9a083a4121 
								
							 
						 
						
							
							
								
								Reflects MachineConstantPoolEntry changes.  
							
							... 
							
							
							
							llvm-svn: 30279 
							
						 
						
							2006-09-12 21:04:05 +00:00  
				
					
						
							
							
								 
						
							
								ae92ce8798 
								
							 
						 
						
							
							
								
								1. Remove condition on delete.  
							
							... 
							
							
							
							2. Protect and outline createTargetAsmInfo.
3. Misc. kruft.
llvm-svn: 30169 
							
						 
						
							2006-09-07 23:39:26 +00:00  
				
					
						
							
							
								 
						
							
								261779bb45 
								
							 
						 
						
							
							
								
								Make target asm info a property of the target machine.  
							
							... 
							
							
							
							llvm-svn: 30162 
							
						 
						
							2006-09-07 22:06:40 +00:00  
				
					
						
							
							
								 
						
							
								0e83541f8b 
								
							 
						 
						
							
							
								
								Break out target asm info into separate files.  
							
							... 
							
							
							
							llvm-svn: 30161 
							
						 
						
							2006-09-07 22:05:02 +00:00  
				
					
						
							
							
								 
						
							
								a6211dcdad 
								
							 
						 
						
							
							
								
								Separate target specific asm properties from the asm printers.  
							
							... 
							
							
							
							llvm-svn: 30126 
							
						 
						
							2006-09-06 18:34:40 +00:00  
				
					
						
							
							
								 
						
							
								af23f9b5f6 
								
							 
						 
						
							
							
								
								Completely eliminate def&use operands.  Now a register operand is EITHER a  
							
							... 
							
							
							
							def operand or a use operand.
llvm-svn: 30109 
							
						 
						
							2006-09-05 02:31:13 +00:00  
				
					
						
							
							
								 
						
							
								12e97307a1 
								
							 
						 
						
							
							
								
								Completely rearchitect the interface between targets and the pass manager.  
							
							... 
							
							
							
							This pass:
1. Splits TargetMachine into TargetMachine (generic targets, can be implemented
any way, like the CBE) and LLVMTargetMachine (subclass of TM that is used by
things using libcodegen and other support).
2. Instead of having each target fully populate the passmgr for file or JIT
   output, move all this to common code, and give targets hooks they can
   implement.
3. Commonalize the target population stuff between file emission and JIT
   emission.
4. All (native code) codegen stuff now happens in a FunctionPassManager, which
   paves the way for "fast -O0" stuff in the CFE later, and now LLC could
   lazily stream .bc files from disk to use less memory.
5. There are now many fewer #includes and the targets don't depend on the
   scalar xforms or libanalysis anymore (but codegen does).
6. Changing common code generator pass ordering stuff no longer requires
   touching all targets.
7. The JIT now has the option of "-fast" codegen or normal optimized codegen,
   which is now orthogonal to the fact that JIT'ing is being done.
llvm-svn: 30081 
							
						 
						
							2006-09-04 04:14:57 +00:00  
				
					
						
							
							
								 
						
							
								0fc4541c67 
								
							 
						 
						
							
							
								
								Simplify target construction.  
							
							... 
							
							
							
							llvm-svn: 30070 
							
						 
						
							2006-09-03 18:44:02 +00:00  
				
					
						
							
							
								 
						
							
								bad9d2ee49 
								
							 
						 
						
							
							
								
								Use a couple of multiclass patterns to factor some integer ops.  
							
							... 
							
							
							
							llvm-svn: 30039 
							
						 
						
							2006-09-01 22:28:02 +00:00  
				
					
						
							
							
								 
						
							
								38e6d1d5af 
								
							 
						 
						
							
							
								
								remove a bunch of comments  
							
							... 
							
							
							
							llvm-svn: 30038 
							
						 
						
							2006-09-01 22:16:22 +00:00  
				
					
						
							
							
								 
						
							
								34b70eea5c 
								
							 
						 
						
							
							
								
								SelectNodeTo now returns a SDNode*.  
							
							... 
							
							
							
							llvm-svn: 29901 
							
						 
						
							2006-08-26 08:00:10 +00:00  
				
					
						
							
							
								 
						
							
								61413a3d72 
								
							 
						 
						
							
							
								
								Select() no longer require Result operand by reference.  
							
							... 
							
							
							
							llvm-svn: 29898 
							
						 
						
							2006-08-26 05:34:46 +00:00  
				
					
						
							
							
								 
						
							
								ab8297f92d 
								
							 
						 
						
							
							
								
								Match tblgen changes.  
							
							... 
							
							
							
							llvm-svn: 29895 
							
						 
						
							2006-08-26 01:07:58 +00:00  
				
					
						
							
							
								 
						
							
								60f1eecd3a 
								
							 
						 
						
							
							
								
								Constify some methods.  Patch provided by Anton Vayvod, thanks!  
							
							... 
							
							
							
							llvm-svn: 29756 
							
						 
						
							2006-08-17 22:00:08 +00:00  
				
					
						
							
							
								 
						
							
								63d178f473 
								
							 
						 
						
							
							
								
								SelectNodeTo() may return a SDOperand that is different from the input.  
							
							... 
							
							
							
							llvm-svn: 29726 
							
						 
						
							2006-08-16 07:30:09 +00:00  
				
					
						
							
							
								 
						
							
								bd1c5a8fb8 
								
							 
						 
						
							
							
								
								Match tablegen changes.  
							
							... 
							
							
							
							llvm-svn: 29604 
							
						 
						
							2006-08-11 09:08:15 +00:00  
				
					
						
							
							
								 
						
							
								81b645a76b 
								
							 
						 
						
							
							
								
								CALLSEQ_* produces chain even if that's not needed.  
							
							... 
							
							
							
							llvm-svn: 29603 
							
						 
						
							2006-08-11 09:03:33 +00:00  
				
					
						
							
							
								 
						
							
								c24a1d3093 
								
							 
						 
						
							
							
								
								Start eliminating temporary vectors used to create DAG nodes.  Instead, pass  
							
							... 
							
							
							
							in the start of an array and a count of operands where applicable.  In many
cases, the number of operands is known, so this static array can be allocated
on the stack, avoiding the heap.  In many other cases, a SmallVector can be
used, which has the same benefit in the common cases.
I updated a lot of code calling getNode that takes a vector, but ran out of
time.  The rest of the code should be updated, and these methods should be
removed.
We should also do the same thing to eliminate the methods that take a
vector of MVT::ValueTypes.
It would be extra nice to convert the dagiselemitter to avoid creating vectors
for operands when calling getTargetNode.
llvm-svn: 29566 
							
						 
						
							2006-08-08 02:23:42 +00:00  
				
					
						
							
							
								 
						
							
								b9d34bd098 
								
							 
						 
						
							
							
								
								Match tablegen isel changes.  
							
							... 
							
							
							
							llvm-svn: 29549 
							
						 
						
							2006-08-07 22:28:20 +00:00  
				
					
						
							
							
								 
						
							
								b572401bea 
								
							 
						 
						
							
							
								
								Remove InFlightSet hack. No longer needed.  
							
							... 
							
							
							
							llvm-svn: 29373 
							
						 
						
							2006-07-28 00:47:19 +00:00  
				
					
						
							
							
								 
						
							
								f3b5b92e58 
								
							 
						 
						
							
							
								
								Don't pass target name into TargetData anymore, it is never used or needed.  
							
							... 
							
							
							
							Remove explicit casts to std::string now that there is no overload resolution
issues in the TargetData ctors.
llvm-svn: 28830 
							
						 
						
							2006-06-16 18:22:52 +00:00  
				
					
						
							
							
								 
						
							
								94bb93f8f7 
								
							 
						 
						
							
							
								
								Type of extract_element index operand should be iPTR.  
							
							... 
							
							
							
							llvm-svn: 28797 
							
						 
						
							2006-06-15 08:18:06 +00:00  
				
					
						
							
							
								 
						
							
								a3add0fea8 
								
							 
						 
						
							
							
								
								Change RET node to include signness information of the return values. i.e.  
							
							... 
							
							
							
							RET chain, value1, sign1, value2, sign2, ...
llvm-svn: 28510 
							
						 
						
							2006-05-26 23:10:12 +00:00  
				
					
						
							
							
								 
						
							
								dc1614d93e 
								
							 
						 
						
							
							
								
								Add support for the missing FP condition codes  
							
							... 
							
							
							
							llvm-svn: 28482 
							
						 
						
							2006-05-25 22:26:02 +00:00  
				
					
						
							
							
								 
						
							
								4af59dac0b 
								
							 
						 
						
							
							
								
								Assert if InflightSet is not cleared after instruction selecting a BB.  
							
							... 
							
							
							
							llvm-svn: 28459 
							
						 
						
							2006-05-25 00:24:28 +00:00  
				
					
						
							
							
								 
						
							
								1a8e74d113 
								
							 
						 
						
							
							
								
								Clear HandleMap and ReplaceMap after instruction selection. Or it may cause  
							
							... 
							
							
							
							non-deterministic behavior.
llvm-svn: 28454 
							
						 
						
							2006-05-24 20:46:25 +00:00  
				
					
						
							
							
								 
						
							
								aa2372562e 
								
							 
						 
						
							
							
								
								Patches to make the LLVM sources more -pedantic clean.  Patch provided  
							
							... 
							
							
							
							by Anton Korobeynikov!  This is a step towards closing PR786.
llvm-svn: 28447 
							
						 
						
							2006-05-24 17:04:05 +00:00  
				
					
						
							
							
								 
						
							
								f7db631b7d 
								
							 
						 
						
							
							
								
								Sparc is big-endian.  
							
							... 
							
							
							
							llvm-svn: 28415 
							
						 
						
							2006-05-20 00:49:30 +00:00  
				
					
						
							
							
								 
						
							
								88812b5c0a 
								
							 
						 
						
							
							
								
								Make all of the TargetMachine subclasses use the new string TargetData methods.  
							
							... 
							
							
							
							This is part of the on-going work on PR 761.
llvm-svn: 28414 
							
						 
						
							2006-05-20 00:24:56 +00:00  
				
					
						
							
							
								 
						
							
								305c49579c 
								
							 
						 
						
							
							
								
								getCalleeSaveRegs and getCalleeSaveRegClasses are no long TableGen'd.  
							
							... 
							
							
							
							llvm-svn: 28378 
							
						 
						
							2006-05-18 00:12:58 +00:00  
				
					
						
							
							
								 
						
							
								dcec882286 
								
							 
						 
						
							
							
								
								Remove PointerType from class Target  
							
							... 
							
							
							
							llvm-svn: 28368 
							
						 
						
							2006-05-17 21:20:27 +00:00  
				
					
						
							
							
								 
						
							
								9cd2ef34e6 
								
							 
						 
						
							
							
								
								Remove dead variable.  
							
							... 
							
							
							
							llvm-svn: 28247 
							
						 
						
							2006-05-12 17:31:21 +00:00  
				
					
						
							
							
								 
						
							
								8c2c1e90c4 
								
							 
						 
						
							
							
								
								Refactor a bunch of includes so that TargetMachine.h doesn't have to include  
							
							... 
							
							
							
							TargetData.h.  This should make recompiles a bit faster with my current
TargetData tinkering.
llvm-svn: 28238 
							
						 
						
							2006-05-12 06:33:49 +00:00  
				
					
						
							
							
								 
						
							
								8488ba2e41 
								
							 
						 
						
							
							
								
								Split SwitchSection into SwitchTo{Text|Data}Section methods.  
							
							... 
							
							
							
							llvm-svn: 28184 
							
						 
						
							2006-05-09 04:59:56 +00:00  
				
					
						
							
							
								 
						
							
								8587f8885d 
								
							 
						 
						
							
							
								
								Some notes and thoughts to myself  
							
							... 
							
							
							
							llvm-svn: 28182 
							
						 
						
							2006-05-09 04:58:46 +00:00  
				
					
						
							
							
								 
						
							
								10b71c0d08 
								
							 
						 
						
							
							
								
								Rename MO_VirtualRegister -> MO_Register.  Clean up immediate handling.  
							
							... 
							
							
							
							llvm-svn: 28104 
							
						 
						
							2006-05-04 18:05:43 +00:00  
				
					
						
							
							
								 
						
							
								10d6341618 
								
							 
						 
						
							
							
								
								Move some methods out of MachineInstr into MachineOperand  
							
							... 
							
							
							
							llvm-svn: 28102 
							
						 
						
							2006-05-04 17:52:23 +00:00  
				
					
						
							
							
								 
						
							
								fef7a2d0f5 
								
							 
						 
						
							
							
								
								There shalt be only one "immediate" operand type!  
							
							... 
							
							
							
							llvm-svn: 28099 
							
						 
						
							2006-05-04 17:21:20 +00:00  
				
					
						
							
							
								 
						
							
								940cc978ef 
								
							 
						 
						
							
							
								
								Remove a bunch more SparcV9 specific stuff  
							
							... 
							
							
							
							llvm-svn: 28093 
							
						 
						
							2006-05-04 01:15:02 +00:00  
				
					
						
							
							
								 
						
							
								9f6639b64d 
								
							 
						 
						
							
							
								
								Remove some more unused stuff from MachineInstr that was leftover from V9.  
							
							... 
							
							
							
							llvm-svn: 28091 
							
						 
						
							2006-05-04 00:44:25 +00:00  
				
					
						
							
							
								 
						
							
								20a631fde7 
								
							 
						 
						
							
							
								
								Refactor TargetMachine, pushing handling of TargetData into the target-specific subclasses.  This has one caller-visible change: getTargetData() now returns a pointer instead of a reference.  
							
							... 
							
							
							
							This fixes PR 759.
llvm-svn: 28074 
							
						 
						
							2006-05-03 01:29:57 +00:00  
				
					
						
							
							
								 
						
							
								b9d4f8324d 
								
							 
						 
						
							
							
								
								Extend printBasicBlockLabel a bit so that it can be used to print all  
							
							... 
							
							
							
							basic block labels, consolidating the code to do so in one place for each
target.
llvm-svn: 28050 
							
						 
						
							2006-05-02 05:37:32 +00:00  
				
					
						
							
							
								 
						
							
								4ca2ea5b43 
								
							 
						 
						
							
							
								
								JumpTable support!  What this represents is working asm and jit support for  
							
							... 
							
							
							
							x86 and ppc for 100% dense switch statements when relocations are non-PIC.
This support will be extended and enhanced in the coming days to support
PIC, and less dense forms of jump tables.
llvm-svn: 27947 
							
						 
						
							2006-04-22 18:53:45 +00:00  
				
					
						
							
							
								 
						
							
								9857229aba 
								
							 
						 
						
							
							
								
								Add the README files to the distribution.  
							
							... 
							
							
							
							llvm-svn: 27651 
							
						 
						
							2006-04-13 06:39:24 +00:00  
				
					
						
							
							
								 
						
							
								3f9c17906f 
								
							 
						 
						
							
							
								
								Disable switch lowering for targets based on the selection dag isel,  
							
							... 
							
							
							
							letting the code generator handle them directly.
llvm-svn: 27539 
							
						 
						
							2006-04-08 19:46:55 +00:00  
				
					
						
							
							
								 
						
							
								2d7298c362 
								
							 
						 
						
							
							
								
								Foundation for call frame information.  
							
							... 
							
							
							
							llvm-svn: 27491 
							
						 
						
							2006-04-07 16:34:46 +00:00  
				
					
						
							
							
								 
						
							
								d1aa1638c6 
								
							 
						 
						
							
							
								
								Expose base register for DwarfWriter.  Refactor code accordingly.  
							
							... 
							
							
							
							llvm-svn: 27225 
							
						 
						
							2006-03-28 13:48:33 +00:00  
				
					
						
							
							
								 
						
							
								fa53b276d0 
								
							 
						 
						
							
							
								
								Translate llvm target registers to dwarf register numbers properly.  
							
							... 
							
							
							
							llvm-svn: 27180 
							
						 
						
							2006-03-27 20:18:45 +00:00  
				
					
						
							
							
								 
						
							
								ed728c1291 
								
							 
						 
						
							
							
								
								SelectionDAGISel can now natively handle Switch instructions, in the same  
							
							... 
							
							
							
							manner that the LowerSwitch LLVM to LLVM pass does: emitting a binary
search tree of basic blocks.  The new approach has several advantages:
it is faster, it generates significantly smaller code in many cases, and
it paves the way for implementing dense switch tables as a jump table by
handling switches directly in the instruction selector.
This functionality is currently only enabled on x86, but should be safe for
every target.  In anticipation of making it the default, the cfg is now
properly updated in the x86, ppc, and sparc select lowering code.
llvm-svn: 27156 
							
						 
						
							2006-03-27 01:32:24 +00:00  
				
					
						
							
							
								 
						
							
								5d70a7c4a5 
								
							 
						 
						
							
							
								
								#include Intrinsics.h into all dag isels  
							
							... 
							
							
							
							llvm-svn: 27109 
							
						 
						
							2006-03-25 06:47:10 +00:00  
				
					
						
							
							
								 
						
							
								bb84eae239 
								
							 
						 
						
							
							
								
								D'oh - should be even numbered.  
							
							... 
							
							
							
							llvm-svn: 27088 
							
						 
						
							2006-03-24 22:48:02 +00:00  
				
					
						
							
							
								 
						
							
								f0729b4067 
								
							 
						 
						
							
							
								
								Add dwarf register numbering to register data.  
							
							... 
							
							
							
							llvm-svn: 27081 
							
						 
						
							2006-03-24 21:15:58 +00:00  
				
					
						
							
							
								 
						
							
								3c43609f1f 
								
							 
						 
						
							
							
								
								Add support to locate local variables in frames (early version.)  
							
							... 
							
							
							
							llvm-svn: 26994 
							
						 
						
							2006-03-23 18:12:57 +00:00  
				
					
						
							
							
								 
						
							
								6f95ab7abb 
								
							 
						 
						
							
							
								
								Eliminate IntrinsicLowering from TargetMachine.  
							
							... 
							
							
							
							Make the CBE and V9 backends create their own, since they're the only ones that use it.
llvm-svn: 26974 
							
						 
						
							2006-03-23 05:43:16 +00:00  
				
					
						
							
							
								 
						
							
								bb01d4f272 
								
							 
						 
						
							
							
								
								Remove BRTWOWAY*  
							
							... 
							
							
							
							Make the PPC backend not dependent on BRTWOWAY_CC and make the branch
selector smarter about the code it generates, fixing a case in the
readme.
llvm-svn: 26814 
							
						 
						
							2006-03-17 01:40:33 +00:00  
				
					
						
							
							
								 
						
							
								e363fdf318 
								
							 
						 
						
							
							
								
								Add support for 'special' llvm globals like debug info and static ctors/dtors.  
							
							... 
							
							
							
							llvm-svn: 26628 
							
						 
						
							2006-03-09 06:14:35 +00:00  
				
					
						
							
							
								 
						
							
								9c7f50376a 
								
							 
						 
						
							
							
								
								Copysign needs to be expanded everywhere.  Note that Alpha and IA64 should  
							
							... 
							
							
							
							implement copysign as a native op if they have it.
llvm-svn: 26541 
							
						 
						
							2006-03-05 05:08:37 +00:00  
				
					
						
							
							
								 
						
							
								ec185f7843 
								
							 
						 
						
							
							
								
								Don't print constant initializers, they may span lines now.  
							
							... 
							
							
							
							llvm-svn: 26403 
							
						 
						
							2006-02-27 20:09:23 +00:00  
				
					
						
							
							
								 
						
							
								747cf60696 
								
							 
						 
						
							
							
								
								The HasNoV9 hack isn't needed here, now that tblgen knows that CustomDAGSchedInserter  
							
							... 
							
							
							
							instructions are expensive.
llvm-svn: 26298 
							
						 
						
							2006-02-21 18:04:32 +00:00  
				
					
						
							
							
								 
						
							
								5965bd19f8 
								
							 
						 
						
							
							
								
								kill ADD_PARTS & SUB_PARTS and replace them with fancy new ADDC, ADDE, SUBC  
							
							... 
							
							
							
							and SUBE nodes that actually expose what's going on and allow for
significant simplifications in the targets.
llvm-svn: 26255 
							
						 
						
							2006-02-17 05:43:56 +00:00  
				
					
						
							
							
								 
						
							
								8a77efe4f7 
								
							 
						 
						
							
							
								
								Rework the SelectionDAG-based implementations of SimplifyDemandedBits  
							
							... 
							
							
							
							and ComputeMaskedBits to match the new improved versions in instcombine.
Tested against all of multisource/benchmarks on ppc.
llvm-svn: 26238 
							
						 
						
							2006-02-16 21:11:51 +00:00  
				
					
						
							
							
								 
						
							
								6db414e8de 
								
							 
						 
						
							
							
								
								Sparc actually *DOES* have a directive for emitting zeros.  In fact, it requires  
							
							... 
							
							
							
							it, because this:
.bss
X:
.byte 0
results in the assembler warning: "initialization in bss segment".  Annoying.
llvm-svn: 26204 
							
						 
						
							2006-02-15 07:07:14 +00:00  
				
					
						
							
							
								 
						
							
								a9d0b5800a 
								
							 
						 
						
							
							
								
								Fix SingleSource/Regression/C/2004-08-12-InlinerAndAllocas.c on Sparc.  
							
							... 
							
							
							
							The ABI specifies that there is a register save area at the bottom of the
stack, which means the actual used pointer needs to be an offset from
the subtracted value.
llvm-svn: 26202 
							
						 
						
							2006-02-15 06:41:34 +00:00  
				
					
						
							
							
								 
						
							
								62c3484e43 
								
							 
						 
						
							
							
								
								Switch targets over to using SelectionDAG::getCALLSEQ_START to create  
							
							... 
							
							
							
							CALLSEQ_START nodes.
llvm-svn: 26143 
							
						 
						
							2006-02-13 09:00:43 +00:00  
				
					
						
							
							
								 
						
							
								fcb8a3aa76 
								
							 
						 
						
							
							
								
								Use the auto-generated call matcher.  Remove a broken impl of the frameaddr/returnaddr  
							
							... 
							
							
							
							intrinsics.
Autogen frameindex matcher
llvm-svn: 26107 
							
						 
						
							2006-02-10 07:35:42 +00:00  
				
					
						
							
							
								 
						
							
								0c4dea4cb2 
								
							 
						 
						
							
							
								
								Update to new-style flags usage, simplifying the .td file  
							
							... 
							
							
							
							llvm-svn: 26106 
							
						 
						
							2006-02-10 06:58:25 +00:00  
				
					
						
							
							
								 
						
							
								4c0bd5bcdf 
								
							 
						 
						
							
							
								
								Done  
							
							... 
							
							
							
							llvm-svn: 26091 
							
						 
						
							2006-02-09 20:00:19 +00:00  
				
					
						
							
							
								 
						
							
								5259aa1c86 
								
							 
						 
						
							
							
								
								Enable LSR by default for SPARC: it is a clear win.  
							
							... 
							
							
							
							llvm-svn: 26090 
							
						 
						
							2006-02-09 19:59:55 +00:00  
				
					
						
							
							
								 
						
							
								d1b82d8db0 
								
							 
						 
						
							
							
								
								Match getTargetNode() changes (now return SDNode* instead of SDOperand).  
							
							... 
							
							
							
							llvm-svn: 26085 
							
						 
						
							2006-02-09 07:17:49 +00:00  
				
					
						
							
							
								 
						
							
								c75d5b093d 
								
							 
						 
						
							
							
								
								add an option to turn on LSR.  
							
							... 
							
							
							
							llvm-svn: 26080 
							
						 
						
							2006-02-09 05:06:36 +00:00  
				
					
						
							
							
								 
						
							
								f6190821da 
								
							 
						 
						
							
							
								
								Adjust to MachineConstantPool interface change: instead of keeping a  
							
							... 
							
							
							
							value/alignment pair for each constant, keep a value/offset pair.
llvm-svn: 26078 
							
						 
						
							2006-02-09 04:46:04 +00:00  
				
					
						
							
							
								 
						
							
								6dc90ca172 
								
							 
						 
						
							
							
								
								Change Select() from  
							
							... 
							
							
							
							SDOperand Select(SDOperand N);
to
void Select(SDOperand &Result, SDOperand N);
llvm-svn: 26067 
							
						 
						
							2006-02-09 00:37:58 +00:00  
				
					
						
							
							
								 
						
							
								463fa70eaa 
								
							 
						 
						
							
							
								
								Fix the Sparc backend with Evan's recent tblgen changes  
							
							... 
							
							
							
							llvm-svn: 26009 
							
						 
						
							2006-02-05 08:35:50 +00:00  
				
					
						
							
							
								 
						
							
								a28b764886 
								
							 
						 
						
							
							
								
								Use SelectRoot() as the entry to any tblgen based isel.  
							
							... 
							
							
							
							llvm-svn: 25998 
							
						 
						
							2006-02-05 06:51:51 +00:00  
				
					
						
							
							
								 
						
							
								a3e5b2c61c 
								
							 
						 
						
							
							
								
								remove V8 reference  
							
							... 
							
							
							
							llvm-svn: 25991 
							
						 
						
							2006-02-05 06:32:59 +00:00  
				
					
						
							
							
								 
						
							
								158e1f519c 
								
							 
						 
						
							
							
								
								Rename SPARC V8 target to be the LLVM SPARC target.  
							
							... 
							
							
							
							llvm-svn: 25985 
							
						 
						
							2006-02-05 05:50:24 +00:00  
				
					
						
							
							
								 
						
							
								94e95d2b3e 
								
							 
						 
						
							
							
								
								Great renaming: Sparc --> SparcV9  
							
							... 
							
							
							
							llvm-svn: 11826 
							
						 
						
							2004-02-25 18:44:15 +00:00  
				
					
						
							
							
								 
						
							
								10a32da382 
								
							 
						 
						
							
							
								
								FunctionLiveVarInfo.h moved: include/llvm/CodeGen -> lib/Target/Sparc/LiveVar  
							
							... 
							
							
							
							llvm-svn: 11804 
							
						 
						
							2004-02-24 19:46:00 +00:00  
				
					
						
							
							
								 
						
							
								8358cc573d 
								
							 
						 
						
							
							
								
								Move MOTy::UseType enum into MachineOperand. This eliminates the  
							
							... 
							
							
							
							switch statements in the constructors and simplifies the
implementation of the getUseType() member function. You will have to
specify defs using MachineOperand::Def instead of MOTy::Def though
(similarly for Use and UseAndDef).
llvm-svn: 11715 
							
						 
						
							2004-02-22 19:23:26 +00:00  
				
					
						
							
							
								 
						
							
								76b2ff4ded 
								
							 
						 
						
							
							
								
								Adjustments to support the new ConstantAggregateZero class  
							
							... 
							
							
							
							llvm-svn: 11474 
							
						 
						
							2004-02-15 05:55:15 +00:00  
				
					
						
							
							
								 
						
							
								5a92240270 
								
							 
						 
						
							
							
								
								Use newly added next() and prior() utility functions.  
							
							... 
							
							
							
							llvm-svn: 11430 
							
						 
						
							2004-02-14 01:18:34 +00:00  
				
					
						
							
							
								 
						
							
								8cdd0215bf 
								
							 
						 
						
							
							
								
								Remove getAllocatedRegNum(). Use getReg() instead.  
							
							... 
							
							
							
							llvm-svn: 11393 
							
						 
						
							2004-02-13 21:01:20 +00:00  
				
					
						
							
							
								 
						
							
								cbf0667743 
								
							 
						 
						
							
							
								
								Squish warning  
							
							... 
							
							
							
							llvm-svn: 11375 
							
						 
						
							2004-02-13 16:14:50 +00:00  
				
					
						
							
							
								 
						
							
								c07b64f3cb 
								
							 
						 
						
							
							
								
								Remove this MachineOpCodeFlags assertion - its test can never be false.  
							
							... 
							
							
							
							llvm-svn: 11342 
							
						 
						
							2004-02-12 04:01:07 +00:00  
				
					
						
							
							
								 
						
							
								80da865f77 
								
							 
						 
						
							
							
								
								Change MachineBasicBlock's vector of MachineInstr pointers into an  
							
							... 
							
							
							
							ilist of MachineInstr objects. This allows constant time removal and
insertion of MachineInstr instances from anywhere in each
MachineBasicBlock. It also allows for constant time splicing of
MachineInstrs into or out of MachineBasicBlocks.
llvm-svn: 11340 
							
						 
						
							2004-02-12 02:27:10 +00:00  
				
					
						
							
							
								 
						
							
								b22186adf0 
								
							 
						 
						
							
							
								
								MachineInstr::getOpCode() --> getOpcode() in SPARC back-end.  
							
							... 
							
							
							
							llvm-svn: 11335 
							
						 
						
							2004-02-11 20:47:34 +00:00  
				
					
						
							
							
								 
						
							
								8f4142616d 
								
							 
						 
						
							
							
								
								Increase constness.  
							
							... 
							
							
							
							llvm-svn: 11322 
							
						 
						
							2004-02-11 17:55:09 +00:00  
				
					
						
							
							
								 
						
							
								2f21547208 
								
							 
						 
						
							
							
								
								Remove assert as the only integer registers on the sparc are physical.  
							
							... 
							
							
							
							llvm-svn: 11317 
							
						 
						
							2004-02-11 06:04:51 +00:00  
				
					
						
							
							
								 
						
							
								fcb99fe370 
								
							 
						 
						
							
							
								
								Fix previous broken commit. A MachineOperand may have opType ==  
							
							... 
							
							
							
							MO_VirtualRegister but if the register number is one of a physical
register is it considered as a physical register.
llvm-svn: 11315 
							
						 
						
							2004-02-11 05:55:00 +00:00  
				
					
						
							
							
								 
						
							
								adcc14d96a 
								
							 
						 
						
							
							
								
								Remove assert as it is meaningless. MachineOperands can be tagged as  
							
							... 
							
							
							
							MO_VirtualRegister but actually be representing a physical register.
llvm-svn: 11310 
							
						 
						
							2004-02-11 04:52:30 +00:00  
				
					
						
							
							
								 
						
							
								1cb6d2697d 
								
							 
						 
						
							
							
								
								Stop using this method  
							
							... 
							
							
							
							llvm-svn: 11282 
							
						 
						
							2004-02-10 21:12:06 +00:00  
				
					
						
							
							
								 
						
							
								2d5feb5e04 
								
							 
						 
						
							
							
								
								Remvoe use of MO.isVirtualRegister(), turn an assertion into an assert()  
							
							... 
							
							
							
							llvm-svn: 11280 
							
						 
						
							2004-02-10 20:47:24 +00:00  
				
					
						
							
							
								 
						
							
								2aea68ccfd 
								
							 
						 
						
							
							
								
								Remove use of isPhysicalRegister  
							
							... 
							
							
							
							llvm-svn: 11277 
							
						 
						
							2004-02-10 20:35:42 +00:00  
				
					
						
							
							
								 
						
							
								ff04d76c57 
								
							 
						 
						
							
							
								
								Fix PR228: [sparc] Boolean constants are emitted as true and false  
							
							... 
							
							
							
							I will observe that the concept of using WriteAsOperand is completely broken,
but then we all knew that, didn't we?
llvm-svn: 11255 
							
						 
						
							2004-02-10 05:16:44 +00:00  
				
					
						
							
							
								 
						
							
								7f7a842bd6 
								
							 
						 
						
							
							
								
								Doxygenify comments.  
							
							... 
							
							
							
							llvm-svn: 11252 
							
						 
						
							2004-02-09 23:18:42 +00:00  
				
					
						
							
							
								 
						
							
								4dc5478fbc 
								
							 
						 
						
							
							
								
								Fix PR#226: When emitting padding, always emit it as bytes.  Bytes can be  
							
							... 
							
							
							
							placed into any alignment situation.
llvm-svn: 11247 
							
						 
						
							2004-02-09 22:15:33 +00:00  
				
					
						
							
							
								 
						
							
								f429a0e6dd 
								
							 
						 
						
							
							
								
								Add a new (static inline) std::ostream& << AllocInfo& method. Use it.  
							
							... 
							
							
							
							llvm-svn: 11002 
							
						 
						
							2004-01-28 19:05:43 +00:00  
				
					
						
							
							
								 
						
							
								929d1d1ca1 
								
							 
						 
						
							
							
								
								Use the LLVM standard name mangling infrastructure instead of reinventing the  
							
							... 
							
							
							
							wheel.
llvm-svn: 10891 
							
						 
						
							2004-01-15 22:44:19 +00:00  
				
					
						
							
							
								 
						
							
								16d4009a1b 
								
							 
						 
						
							
							
								
								Include TargetRegInfo.h and declare SparcTargetMachine forward, to make this  
							
							... 
							
							
							
							header more easily includable.
llvm-svn: 10880 
							
						 
						
							2004-01-15 18:17:07 +00:00  
				
					
						
							
							
								 
						
							
								93cd755c05 
								
							 
						 
						
							
							
								
								Eliminate the isStringCompatible function, using ConstantArray::isString.  
							
							... 
							
							
							
							It's not clear why the code was looking for signed chars < 0, but it can't
matter to the assembler anyway, so the check goes away.  This also fixes
compatibility with arrays of [us]byte that have constantexprs in them.
Also slightly restructure some code to be cleaner.
llvm-svn: 10854 
							
						 
						
							2004-01-14 17:15:17 +00:00  
				
					
						
							
							
								 
						
							
								66f33ff6c2 
								
							 
						 
						
							
							
								
								Finegrainify namespacification  
							
							... 
							
							
							
							Using the SlotCalculator is total overkill for this file, a simple map
will suffice.  Why doesn't this use the NameMangler interface?
llvm-svn: 10823 
							
						 
						
							2004-01-13 21:27:59 +00:00  
				
					
						
							
							
								 
						
							
								dbd9c33e5e 
								
							 
						 
						
							
							
								
								Remove dump-input option.  
							
							... 
							
							
							
							Make addPassesToEmitAssembly() look slightly more like addPassesToJITCompile().
llvm-svn: 10818 
							
						 
						
							2004-01-13 19:26:21 +00:00  
				
					
						
							
							
								 
						
							
								fe2aafe08a 
								
							 
						 
						
							
							
								
								Eliminate use of ConstantHandling itf  
							
							... 
							
							
							
							llvm-svn: 10782 
							
						 
						
							2004-01-12 18:08:18 +00:00  
				
					
						
							
							
								 
						
							
								4ee36320f4 
								
							 
						 
						
							
							
								
								Move sparc-specific livevar code into lib/Target/Sparc  
							
							... 
							
							
							
							llvm-svn: 10733 
							
						 
						
							2004-01-09 18:15:24 +00:00  
				
					
						
							
							
								 
						
							
								bb6fa4b327 
								
							 
						 
						
							
							
								
								Fix more incestuous #includage.  
							
							... 
							
							
							
							llvm-svn: 10732 
							
						 
						
							2004-01-09 16:17:09 +00:00  
				
					
						
							
							
								 
						
							
								3d874aebc2 
								
							 
						 
						
							
							
								
								Move InstrSelection into lib/Target/Sparc, as it's sparc specific.  This  
							
							... 
							
							
							
							makes the incestuous #include'ing of sparc internal headers much less
disturbing.  :)
llvm-svn: 10729 
							
						 
						
							2004-01-09 06:22:34 +00:00  
				
					
						
							
							
								 
						
							
								b9c7999881 
								
							 
						 
						
							
							
								
								Move lib/Codegen/RegAlloc into lib/Target/Sparc, as it is sparc specific  
							
							... 
							
							
							
							llvm-svn: 10728 
							
						 
						
							2004-01-09 06:17:12 +00:00  
				
					
						
							
							
								 
						
							
								5d236005b0 
								
							 
						 
						
							
							
								
								Clean up a lot of the code I added yesterday by exposing the IntrinsicLowering  
							
							... 
							
							
							
							implementation from the TargetMachine directly.
llvm-svn: 10636 
							
						 
						
							2003-12-28 21:23:38 +00:00  
				
					
						
							
							
								 
						
							
								dfc5631bfd 
								
							 
						 
						
							
							
								
								Eliminate some code that is not needed now that we have the intrinsic lowering pass  
							
							... 
							
							
							
							llvm-svn: 10628 
							
						 
						
							2003-12-28 09:46:33 +00:00  
				
					
						
							
							
								 
						
							
								69aa1ccb07 
								
							 
						 
						
							
							
								
								Really release memory used by functions. Patch by Chris.  
							
							... 
							
							
							
							llvm-svn: 10572 
							
						 
						
							2003-12-22 03:47:58 +00:00  
				
					
						
							
							
								 
						
							
								9a4898939a 
								
							 
						 
						
							
							
								
								Hoist some sparc specific code into the sparc target  
							
							... 
							
							
							
							llvm-svn: 10554 
							
						 
						
							2003-12-20 09:17:40 +00:00  
				
					
						
							
							
								 
						
							
								833c3c2597 
								
							 
						 
						
							
							
								
								Rip JIT specific stuff out of TargetMachine, as per PR176  
							
							... 
							
							
							
							llvm-svn: 10542 
							
						 
						
							2003-12-20 01:22:19 +00:00  
				
					
						
							
							
								 
						
							
								ee158ca708 
								
							 
						 
						
							
							
								
								* Converted C-style comments to C++  
							
							... 
							
							
							
							* Doxygenified comments
* Reordered #includes
llvm-svn: 10503 
							
						 
						
							2003-12-17 22:08:20 +00:00  
				
					
						
							
							
								 
						
							
								0f42585924 
								
							 
						 
						
							
							
								
								Reordered #includes.  
							
							... 
							
							
							
							llvm-svn: 10502 
							
						 
						
							2003-12-17 22:06:28 +00:00  
				
					
						
							
							
								 
						
							
								426275b96d 
								
							 
						 
						
							
							
								
								Doxygenified some comments, reduced extraneous space.  
							
							... 
							
							
							
							llvm-svn: 10501 
							
						 
						
							2003-12-17 22:06:08 +00:00  
				
					
						
							
							
								 
						
							
								b01a80aa94 
								
							 
						 
						
							
							
								
								Reorganized the Sparc backend to be more modular -- each different  
							
							... 
							
							
							
							implementation of a Target{RegInfo, InstrInfo, Machine, etc} now has a separate
header and a separate implementation file.
This means that instead of a massive SparcInternals.h that forces a
recompilation of the whole target whenever a minor detail is changed, you should
only recompile a few files.
Note that SparcInternals.h is still around; its contents should be minimized.
llvm-svn: 10500 
							
						 
						
							2003-12-17 22:04:00 +00:00  
				
					
						
							
							
								 
						
							
								aaba4639f8 
								
							 
						 
						
							
							
								
								Change interface of MachineOperand as follows:  
							
							... 
							
							
							
							a) remove opIsUse(), opIsDefOnly(), opIsDefAndUse()
    b) add isUse(), isDef()
    c) rename opHiBits32() to isHiBits32(),
              opLoBits32() to isLoBits32(),
              opHiBits64() to isHiBits64(),
              opLoBits64() to isLoBits64().
This results to much more readable code, for example compare
"op.opIsDef() || op.opIsDefAndUse()" to "op.isDef()" a pattern used
very often in the code.
llvm-svn: 10461 
							
						 
						
							2003-12-14 13:24:17 +00:00  
				
					
						
							
							
								 
						
							
								d181666052 
								
							 
						 
						
							
							
								
								* Add code to flush the ICache, which any self-respecting SMC must do  
							
							... 
							
							
							
							* Restore registers *after* everything else to avoid any possible side effects
This fixes McCat-imp.
llvm-svn: 10147 
							
						 
						
							2003-11-21 23:48:54 +00:00  
				
					
						
							
							
								 
						
							
								0e2e1f121a 
								
							 
						 
						
							
							
								
								Include the file before we close the llvm namespace.  
							
							... 
							
							
							
							llvm-svn: 9954 
							
						 
						
							2003-11-13 00:23:05 +00:00  
				
					
						
							
							
								 
						
							
								6675f982de 
								
							 
						 
						
							
							
								
								Substantially re-organized this file:  
							
							... 
							
							
							
							* There is now only one pass to print out assembly instead of two
* It is a FunctionPass
* The Module-level printing of globals is now in doFinalization() method of the
  FunctionPass
* The code has been reformatted to follow LLVM coding standards
* Some comments, not all, were doxygenified
* Last but not least, the function to create an instance of this pass is also no
  longer a method in the UltraSparc class.
llvm-svn: 9953 
							
						 
						
							2003-11-13 00:22:19 +00:00  
				
					
						
							
							
								 
						
							
								2558e8c852 
								
							 
						 
						
							
							
								
								The function to create an instance of this pass is no longer a method of  
							
							... 
							
							
							
							the UltraSparc class.
llvm-svn: 9952 
							
						 
						
							2003-11-13 00:19:02 +00:00  
				
					
						
							
							
								 
						
							
								167026f8c8 
								
							 
						 
						
							
							
								
								The functions to create new instances of passes are no longer methods in the  
							
							... 
							
							
							
							UltraSparc class. Comments are also doxygen-compatible now.
llvm-svn: 9951 
							
						 
						
							2003-11-13 00:17:20 +00:00  
				
					
						
							
							
								 
						
							
								b26c6fa4eb 
								
							 
						 
						
							
							
								
								* Put command-line switches in their own namespace  
							
							... 
							
							
							
							* Pass creation functions are no longer in the UltraSparc class
llvm-svn: 9950 
							
						 
						
							2003-11-13 00:16:28 +00:00  
				
					
						
							
							
								 
						
							
								893e793739 
								
							 
						 
						
							
							
								
								Force a dependency on the .inc file, which must be generated!  
							
							... 
							
							
							
							llvm-svn: 9949 
							
						 
						
							2003-11-13 00:05:09 +00:00  
				
					
						
							
							
								 
						
							
								960707c335 
								
							 
						 
						
							
							
								
								Put all LLVM code into the llvm namespace, as per bug 109.  
							
							... 
							
							
							
							llvm-svn: 9903 
							
						 
						
							2003-11-11 22:41:34 +00:00  
				
					
						
							
							
								 
						
							
								75bc7cec4b 
								
							 
						 
						
							
							
								
								Fix PR103  
							
							... 
							
							
							
							llvm-svn: 9830 
							
						 
						
							2003-11-09 07:08:34 +00:00  
				
					
						
							
							
								 
						
							
								f8cb2419ee 
								
							 
						 
						
							
							
								
								Fix two typos I found in comments.  
							
							... 
							
							
							
							llvm-svn: 9806 
							
						 
						
							2003-11-08 18:12:24 +00:00  
				
					
						
							
							
								 
						
							
								a1eefa40dc 
								
							 
						 
						
							
							
								
								For some reason, LICM and GCSE like to crash the FunctionPassManager when they  
							
							... 
							
							
							
							are being added as FunctionPasses... Sigh.
llvm-svn: 9798 
							
						 
						
							2003-11-08 00:01:39 +00:00  
				
					
						
							
							
								 
						
							
								508cc3e7a9 
								
							 
						 
						
							
							
								
								Implement branching to a PC-relative constant (not a BasicBlock).  
							
							... 
							
							
							
							llvm-svn: 9793 
							
						 
						
							2003-11-07 21:07:30 +00:00  
				
					
						
							
							
								 
						
							
								3b2343eae9 
								
							 
						 
						
							
							
								
								PreSelection is not optional, it performs a necessary and vital transformation  
							
							... 
							
							
							
							for the Sparc backend: breaking up constant expressions. Thus, we cannot have it
guarded by a conditional, it should never be disabled.
Also, it's now available for the JIT since it is a FunctionPass.
llvm-svn: 9791 
							
						 
						
							2003-11-07 20:33:25 +00:00  
				
					
						
							
							
								 
						
							
								2c3068026a 
								
							 
						 
						
							
							
								
								Switch to emitting MachineConstantPool the way it was meant to be done.  
							
							... 
							
							
							
							llvm-svn: 9777 
							
						 
						
							2003-11-07 18:06:26 +00:00  
				
					
						
							
							
								 
						
							
								2133b0513d 
								
							 
						 
						
							
							
								
								Switch to using the standard representation of the constant pool -- namely, the  
							
							... 
							
							
							
							MachineConstantPool. This involved refactoring the two classes involved in
printing out Sparc assembly. In fact, they should share all this code anyway.
llvm-svn: 9776 
							
						 
						
							2003-11-07 17:45:28 +00:00  
				
					
						
							
							
								 
						
							
								faa42d264f 
								
							 
						 
						
							
							
								
								We accept TargetMachine as a const reference.  
							
							... 
							
							
							
							llvm-svn: 9775 
							
						 
						
							2003-11-07 17:44:18 +00:00  
				
					
						
							
							
								 
						
							
								bd4a8ed139 
								
							 
						 
						
							
							
								
								PreSelection and PeepholeOpts are now FunctionPasses.  
							
							... 
							
							
							
							llvm-svn: 9774 
							
						 
						
							2003-11-07 17:43:43 +00:00  
				
					
						
							
							
								 
						
							
								81c748c1e2 
								
							 
						 
						
							
							
								
								* Stop making a global for each constant that cannot live in an instruction;  
							
							... 
							
							
							
							it will be converted to a MachineConstantPool index during instruction
  selection
* This is now eligible to become a FunctionPass since it does not have any side
  effects outside of the function it is processing.
llvm-svn: 9773 
							
						 
						
							2003-11-07 17:31:22 +00:00  
				
					
						
							
							
								 
						
							
								bf9ed7ac1f 
								
							 
						 
						
							
							
								
								* Use the MachineConstantPool for storing constants instead of a hash_set;  
							
							... 
							
							
							
							* Do not create new globals for constants!
Also, order #includes as per coding style guide
llvm-svn: 9772 
							
						 
						
							2003-11-07 17:29:48 +00:00  
				
					
						
							
							
								 
						
							
								c16149d7dd 
								
							 
						 
						
							
							
								
								Use `basename $<` to get just the filename, not full path, for ease of reading.  
							
							... 
							
							
							
							llvm-svn: 9770 
							
						 
						
							2003-11-07 17:26:27 +00:00  
				
					
						
							
							
								 
						
							
								5285e9c9a0 
								
							 
						 
						
							
							
								
								Hopefully this will fix PR98  
							
							... 
							
							
							
							llvm-svn: 9762 
							
						 
						
							2003-11-07 00:38:09 +00:00  
				
					
						
							
							
								 
						
							
								b4ad4c3d4c 
								
							 
						 
						
							
							
								
								* Make the comment header 80 columns long  
							
							... 
							
							
							
							* Alphabetize #includes
llvm-svn: 9751 
							
						 
						
							2003-11-06 18:06:13 +00:00  
				
					
						
							
							
								 
						
							
								adc07972bc 
								
							 
						 
						
							
							
								
								Tweak sed commands so that they filter out more # stuff and also  
							
							... 
							
							
							
							work on Mac OS X. Also turn ${...} into $(...); we do not speak BSD
Make.
llvm-svn: 9589 
							
						 
						
							2003-10-29 20:07:35 +00:00  
				
					
						
							
							
								 
						
							
								3f45389172 
								
							 
						 
						
							
							
								
								Make code layout more consistent.  
							
							... 
							
							
							
							llvm-svn: 9418 
							
						 
						
							2003-10-23 16:48:30 +00:00  
				
					
						
							
							
								 
						
							
								dbe73c5d6d 
								
							 
						 
						
							
							
								
								Add comments to describe what these functions actually do.  
							
							... 
							
							
							
							llvm-svn: 9370 
							
						 
						
							2003-10-22 05:50:40 +00:00  
				
					
						
							
							
								 
						
							
								8c0608cf0d 
								
							 
						 
						
							
							
								
								* Use <cmath> instead of <math.h>  
							
							... 
							
							
							
							* Order #includes according to LLVM coding standards
llvm-svn: 9369 
							
						 
						
							2003-10-22 05:09:56 +00:00  
				
					
						
							
							
								 
						
							
								cc0d34223d 
								
							 
						 
						
							
							
								
								Removed completely duplicated function comment (an identical one appears later).  
							
							... 
							
							
							
							llvm-svn: 9368 
							
						 
						
							2003-10-22 04:55:09 +00:00  
				
					
						
							
							
								 
						
							
								980d74c752 
								
							 
						 
						
							
							
								
								No, really, order the #includes correctly.  
							
							... 
							
							
							
							llvm-svn: 9367 
							
						 
						
							2003-10-22 04:51:36 +00:00  
				
					
						
							
							
								 
						
							
								88be700644 
								
							 
						 
						
							
							
								
								* Fix order of #includes to follow style guide  
							
							... 
							
							
							
							* It's no longer a BasicBlock pass: update comment on run() method
* Fix placement of braces to be consistent
* Delete extraneous whitespace
llvm-svn: 9361 
							
						 
						
							2003-10-22 03:27:45 +00:00  
				
					
						
							
							
								 
						
							
								73d9355fea 
								
							 
						 
						
							
							
								
								Hrm, unbreak stuph :(  
							
							... 
							
							
							
							llvm-svn: 9334 
							
						 
						
							2003-10-21 17:22:23 +00:00  
				
					
						
							
							
								 
						
							
								a62228d01a 
								
							 
						 
						
							
							
								
								Fix preselection/lowerswitches bug  
							
							... 
							
							
							
							llvm-svn: 9333 
							
						 
						
							2003-10-21 16:29:23 +00:00  
				
					
						
							
							
								 
						
							
								4439aee504 
								
							 
						 
						
							
							
								
								Pull the PHI special case into it's own visit* method  
							
							... 
							
							
							
							llvm-svn: 9332 
							
						 
						
							2003-10-21 16:09:23 +00:00  
				
					
						
							
							
								 
						
							
								898a42afde 
								
							 
						 
						
							
							
								
								The lastOp operand is never used  
							
							... 
							
							
							
							llvm-svn: 9331 
							
						 
						
							2003-10-21 16:06:07 +00:00  
				
					
						
							
							
								 
						
							
								9583cfafc5 
								
							 
						 
						
							
							
								
								Added LLVM copyright notice.  
							
							... 
							
							
							
							llvm-svn: 9324 
							
						 
						
							2003-10-21 15:29:18 +00:00  
				
					
						
							
							
								 
						
							
								29265fe981 
								
							 
						 
						
							
							
								
								Added LLVM copyright header.  
							
							... 
							
							
							
							llvm-svn: 9321 
							
						 
						
							2003-10-21 15:17:13 +00:00  
				
					
						
							
							
								 
						
							
								2e2a0ed7e1 
								
							 
						 
						
							
							
								
								Preselection is _not_ a basicblock pass, because it adds global variables to  
							
							... 
							
							
							
							the module.  This change converts it from being a basic block pass to being
a simple pass.  This allows elimination of the annotation and simplification
of the logic for moving constants into global variables.
llvm-svn: 9320 
							
						 
						
							2003-10-21 14:49:19 +00:00  
				
					
						
							
							
								 
						
							
								8264e29e01 
								
							 
						 
						
							
							
								
								When opcodes like ADD were split into reg. and immed. versions (ADDi and ADDr),  
							
							... 
							
							
							
							this code wasn't fixed correctly so it missed copy operations that used ADDi.
llvm-svn: 9318 
							
						 
						
							2003-10-21 12:29:45 +00:00  
				
					
						
							
							
								 
						
							
								64e8a13b7b 
								
							 
						 
						
							
							
								
								Why does g++ not even generate a warning when you miss a break statement?  
							
							... 
							
							
							
							llvm-svn: 9317 
							
						 
						
							2003-10-21 12:28:27 +00:00  
				
					
						
							
							
								 
						
							
								af2df5b7f9 
								
							 
						 
						
							
							
								
								Implement the new varargs instructions and intrinsics.  
							
							... 
							
							
							
							llvm-svn: 9316 
							
						 
						
							2003-10-21 11:25:09 +00:00  
				
					
						
							
							
								 
						
							
								4436c49787 
								
							 
						 
						
							
							
								
								Added LLVM copyright notice to Makefiles.  
							
							... 
							
							
							
							llvm-svn: 9312 
							
						 
						
							2003-10-20 22:26:57 +00:00  
				
					
						
							
							
								 
						
							
								e7621515c0 
								
							 
						 
						
							
							
								
								Goodbye, AddRegNumToValues  
							
							... 
							
							
							
							llvm-svn: 9309 
							
						 
						
							2003-10-20 20:44:03 +00:00  
				
					
						
							
							
								 
						
							
								482202a601 
								
							 
						 
						
							
							
								
								Added LLVM project notice to the top of every C++ source file.  
							
							... 
							
							
							
							Header files will be on the way.
llvm-svn: 9298 
							
						 
						
							2003-10-20 19:43:21 +00:00  
				
					
						
							
							
								 
						
							
								ca1789d3f5 
								
							 
						 
						
							
							
								
								Minor leftover fixups from replaceMachineCodeForFunction () change.  
							
							... 
							
							
							
							llvm-svn: 9295 
							
						 
						
							2003-10-20 17:59:09 +00:00  
				
					
						
							
							
								 
						
							
								4bc3958c7b 
								
							 
						 
						
							
							
								
								Make replaceMachineCodeForFunction() return void.  
							
							... 
							
							
							
							llvm-svn: 9289 
							
						 
						
							2003-10-20 15:17:12 +00:00  
				
					
						
							
							
								 
						
							
								67a5a865ae 
								
							 
						 
						
							
							
								
								Make replaceMachineCodeForFunction return void.  
							
							... 
							
							
							
							llvm-svn: 9288 
							
						 
						
							2003-10-20 15:15:17 +00:00  
				
					
						
							
							
								 
						
							
								f187b7691d 
								
							 
						 
						
							
							
								
								Apparently the dependencies are wrong for this file, so it didn't rebuild it  
							
							... 
							
							
							
							when changing Instruction.def.  :(
llvm-svn: 9286 
							
						 
						
							2003-10-20 14:12:52 +00:00  
				
					
						
							
							
								 
						
							
								b94550e537 
								
							 
						 
						
							
							
								
								Change the Opcode enum for PHI nodes from "Instruction::PHINode" to "Instruction::PHI" to be more consistent with the other instructions.  
							
							... 
							
							
							
							llvm-svn: 9269 
							
						 
						
							2003-10-19 21:34:28 +00:00  
				
					
						
							
							
								 
						
							
								fb40334c25 
								
							 
						 
						
							
							
								
								Update the sparc backend to at least compile correctly with the new varargs stuff even if it's not all implemented yet.  
							
							... 
							
							
							
							llvm-svn: 9223 
							
						 
						
							2003-10-18 05:55:58 +00:00  
				
					
						
							
							
								 
						
							
								2e24fcadf5 
								
							 
						 
						
							
							
								
								Refactor jump insertion code from CompilationCallback() into insertJumpAtAddr().  
							
							... 
							
							
							
							Make insertFarJumpAtAddr() return void, because nothing uses its return value.
Remove some commented-out code.
Implement replaceMachineCodeForFunction() for SPARC.
llvm-svn: 9203 
							
						 
						
							2003-10-17 18:27:37 +00:00  
				
					
						
							
							
								 
						
							
								240fc39b07 
								
							 
						 
						
							
							
								
								Add prototype for replaceMachineCodeForFunction().  
							
							... 
							
							
							
							llvm-svn: 9202 
							
						 
						
							2003-10-17 18:27:25 +00:00  
				
					
						
							
							
								 
						
							
								09d40333a2 
								
							 
						 
						
							
							
								
								Remove extra blank line.  
							
							... 
							
							
							
							llvm-svn: 9196 
							
						 
						
							2003-10-17 18:09:10 +00:00  
				
					
						
							
							
								 
						
							
								8faf8d93d5 
								
							 
						 
						
							
							
								
								Eliminate some extraneous code in SlotCalculator::insertVal().  
							
							... 
							
							
							
							Rename SlotCalculator::getValSlot() to SlotCalculator::getSlot(),
       SlotCalculator::insertValue() to SlotCalculator::getOrCreateSlot(),
       SlotCalculator::insertVal() to SlotCalculator::insertValue(), and
       SlotCalculator::doInsertVal() to SlotCalculator::doInsertValue().
llvm-svn: 9190 
							
						 
						
							2003-10-17 02:02:40 +00:00  
				
					
						
							
							
								 
						
							
								6855f03c56 
								
							 
						 
						
							
							
								
								Remove WordsEmitted statistic; there's already a non-backend-specific  
							
							... 
							
							
							
							jello statistic for this (just divide #-bytes-of-code-emitted by 4).
Rewrite head-of-file comment.
llvm-svn: 9098 
							
						 
						
							2003-10-13 19:51:20 +00:00  
				
					
						
							
							
								 
						
							
								44d2c3514a 
								
							 
						 
						
							
							
								
								Regularize header file comments  
							
							... 
							
							
							
							llvm-svn: 9071 
							
						 
						
							2003-10-13 03:32:08 +00:00  
				
					
						
							
							
								 
						
							
								2797c131ef 
								
							 
						 
						
							
							
								
								Don't include "Config/stdlib.h".  
							
							... 
							
							
							
							llvm-svn: 9037 
							
						 
						
							2003-10-10 19:12:22 +00:00  
				
					
						
							
							
								 
						
							
								b8a4ed6543 
								
							 
						 
						
							
							
								
								Include <cstdio> instead of <stdio.h>.  
							
							... 
							
							
							
							llvm-svn: 9032 
							
						 
						
							2003-10-10 18:46:52 +00:00  
				
					
						
							
							
								 
						
							
								8b2bd4ed47 
								
							 
						 
						
							
							
								
								Fix spelling.  
							
							... 
							
							
							
							llvm-svn: 9027 
							
						 
						
							2003-10-10 17:57:28 +00:00  
				
					
						
							
							
								 
						
							
								4547ab19b0 
								
							 
						 
						
							
							
								
								Add # of printed instructions statistic to both the SPARC and X86 LLC backends.  
							
							... 
							
							
							
							llvm-svn: 8892 
							
						 
						
							2003-10-06 15:41:21 +00:00  
				
					
						
							
							
								 
						
							
								fb25374170 
								
							 
						 
						
							
							
								
								Add support for the Invoke instruction by using the LowerInvoke pass  
							
							... 
							
							
							
							llvm-svn: 8872 
							
						 
						
							2003-10-05 19:16:09 +00:00  
				
					
						
							
							
								 
						
							
								cda2885499 
								
							 
						 
						
							
							
								
								The comment seems irrelevant as the pass has become a BasicBlock pass.  
							
							... 
							
							
							
							llvm-svn: 8803 
							
						 
						
							2003-10-01 05:24:50 +00:00  
				
					
						
							
							
								 
						
							
								1440902484 
								
							 
						 
						
							
							
								
								Make sure to get the definition of getRegisterAllocator  
							
							... 
							
							
							
							llvm-svn: 8801 
							
						 
						
							2003-09-30 22:24:00 +00:00  
				
					
						
							
							
								 
						
							
								8b583a229d 
								
							 
						 
						
							
							
								
								RegisterAllocation.h is going away  
							
							... 
							
							
							
							llvm-svn: 8795 
							
						 
						
							2003-09-30 20:15:04 +00:00  
				
					
						
							
							
								 
						
							
								167d87443a 
								
							 
						 
						
							
							
								
								Add statistic for # of emitWord() calls.  
							
							... 
							
							
							
							llvm-svn: 8772 
							
						 
						
							2003-09-30 17:49:41 +00:00  
				
					
						
							
							
								 
						
							
								427929adfb 
								
							 
						 
						
							
							
								
								Fixed spelling.  
							
							... 
							
							
							
							llvm-svn: 8687 
							
						 
						
							2003-09-23 17:28:11 +00:00  
				
					
						
							
							
								 
						
							
								84b1140e2c 
								
							 
						 
						
							
							
								
								Fix spelling.  
							
							... 
							
							
							
							llvm-svn: 8686 
							
						 
						
							2003-09-23 17:27:28 +00:00  
				
					
						
							
							
								 
						
							
								49cf091005 
								
							 
						 
						
							
							
								
								Fix assertion so it doesn't not trip incorrectly.  
							
							... 
							
							
							
							llvm-svn: 8650 
							
						 
						
							2003-09-21 07:55:27 +00:00  
				
					
						
							
							
								 
						
							
								7af0df0015 
								
							 
						 
						
							
							
								
								Fix a typo in Sparc.cpp.  
							
							... 
							
							
							
							Update names of some pass creator fns in addPassesToEmitAssembly().
FunctionInfo is gone.
llvm-svn: 8599 
							
						 
						
							2003-09-18 17:37:46 +00:00  
				
					
						
							
							
								 
						
							
								310b1d899a 
								
							 
						 
						
							
							
								
								Rename the pass creator fn to mimic the other creator fn names.  
							
							... 
							
							
							
							llvm-svn: 8598 
							
						 
						
							2003-09-18 17:37:35 +00:00  
				
					
						
							
							
								 
						
							
								24e706c1ac 
								
							 
						 
						
							
							
								
								Fix (and properly doxygenify) some comments. Incorporate  
							
							... 
							
							
							
							functionality of FunctionInfo pass as doFinalization method.
Rename pass to match names of other passes like it.
Rename the pass creator fn to mimic the other creator fn names.
Include StringExtras for utostr().
Make symbol prologue/epilogue stuff redundant with
 EmitBytecodeToAssembly, in preparation for refactoring.
llvm-svn: 8597 
							
						 
						
							2003-09-18 17:37:25 +00:00  
				
					
						
							
							
								 
						
							
								b4aa604093 
								
							 
						 
						
							
							
								
								Make the symbol prologue/epilogue stuff redundant with MappingInfo, in  
							
							... 
							
							
							
							preparation for refactoring.
Rename the pass creator fn to mimic the other creator fn names.
llvm-svn: 8596 
							
						 
						
							2003-09-18 17:37:14 +00:00  
				
					
						
							
							
								 
						
							
								256fc40375 
								
							 
						 
						
							
							
								
								Fix longjmp case so that, along with the call to abort(), we also  
							
							... 
							
							
							
							generate the appropriate CallArgsDescriptor and tmp. virtual regs.
llvm-svn: 8554 
							
						 
						
							2003-09-16 05:56:22 +00:00  
				
					
						
							
							
								 
						
							
								732ae94521 
								
							 
						 
						
							
							
								
								Don't explicitly use $SourceDir to find the tblgen files.  This causes make  
							
							... 
							
							
							
							some confusion when trying to generate files (it probably couldn't tell that
./file and $(SourceDir)/file may be the same file).
Now, just let VPATH find everything, and list the primary tblgen file first in
the list of dependencies so that we can just use $< to reference it in the make
rule.
This should hopefully fix the nightly tester.
llvm-svn: 8433 
							
						 
						
							2003-09-10 14:10:44 +00:00  
				
					
						
							
							
								 
						
							
								ded9899d2d 
								
							 
						 
						
							
							
								
								Updated to find source files using VPATH.  This makes writing build rules  
							
							... 
							
							
							
							much cleaner and easier.
Labeled .td as a suffix for tblgen files in Makefile.rules.
Modified build rules so that source files generated during the build are placed
in the build directory and not the source directory (and not in a Debug
directory).  This makes the system cleaner and allows us to have a read-only
source tree.
llvm-svn: 8424 
							
						 
						
							2003-09-09 20:57:03 +00:00  
				
					
						
							
							
								 
						
							
								0d1a26ddc2 
								
							 
						 
						
							
							
								
								Checkin of autoconf-style object root.  
							
							... 
							
							
							
							Adjusted Makefile to work with new autoconf-style object root.
Specifically, use the new -I option of tblgen to find include files.
llvm-svn: 8379 
							
						 
						
							2003-09-06 14:50:22 +00:00  
				
					
						
							
							
								 
						
							
								c1ac706afb 
								
							 
						 
						
							
							
								
								Added some optimizations:  
							
							... 
							
							
							
							* Generate a single BA instead of 6-instruction JUMP if possible
  (this occurs both in the creation and overwriting of the stub code)
* If possible, rewrite the ORIGINAL call to call the generated function
  directly, thus bypassing the stub entirely
Also added some statistics on how often calls are overwritten and how often the
CompilationCallback is invoked.
llvm-svn: 8376 
							
						 
						
							2003-09-05 22:59:31 +00:00  
				
					
						
							
							
								 
						
							
								b49a8d7e01 
								
							 
						 
						
							
							
								
								No longer provide an optinfo, noone uses it  
							
							... 
							
							
							
							llvm-svn: 8311 
							
						 
						
							2003-09-01 20:40:59 +00:00  
				
					
						
							
							
								 
						
							
								825624e954 
								
							 
						 
						
							
							
								
								Inline simple comparison which is sparc specific anyway  
							
							... 
							
							
							
							llvm-svn: 8309 
							
						 
						
							2003-09-01 20:38:03 +00:00  
				
					
						
							
							
								 
						
							
								0792315409 
								
							 
						 
						
							
							
								
								Move private interfaces into private .h file  
							
							... 
							
							
							
							llvm-svn: 8306 
							
						 
						
							2003-09-01 20:33:07 +00:00  
				
					
						
							
							
								 
						
							
								8a3d3d26a5 
								
							 
						 
						
							
							
								
								Simplify code a bit  
							
							... 
							
							
							
							llvm-svn: 8301 
							
						 
						
							2003-09-01 20:24:06 +00:00  
				
					
						
							
							
								 
						
							
								eefb565449 
								
							 
						 
						
							
							
								
								LiveRange.h is now in lib/CodeGen/RegAlloc  
							
							... 
							
							
							
							llvm-svn: 8299 
							
						 
						
							2003-09-01 20:17:13 +00:00  
				
					
						
							
							
								 
						
							
								e80612a28e 
								
							 
						 
						
							
							
								
								LiveRangeInfo got moved into the lib/CodeGen/RegAlloc directory  
							
							... 
							
							
							
							llvm-svn: 8297 
							
						 
						
							2003-09-01 20:12:17 +00:00  
				
					
						
							
							
								 
						
							
								8c50571f12 
								
							 
						 
						
							
							
								
								IGNode got moved to lib/CodeGen/RegAlloc  
							
							... 
							
							
							
							llvm-svn: 8294 
							
						 
						
							2003-09-01 20:00:08 +00:00  
				
					
						
							
							
								 
						
							
								69382173e9 
								
							 
						 
						
							
							
								
								This file just needs LiveRange.h not IGNode.h  
							
							... 
							
							
							
							llvm-svn: 8293 
							
						 
						
							2003-09-01 19:58:02 +00:00  
				
					
						
							
							
								 
						
							
								3323829ecc 
								
							 
						 
						
							
							
								
								No longer include IGNode.h in the Sparc global header  
							
							... 
							
							
							
							llvm-svn: 8292 
							
						 
						
							2003-09-01 19:56:48 +00:00  
				
					
						
							
							
								 
						
							
								9770b83509 
								
							 
						 
						
							
							
								
								* Use alloca() to force GCC not to eliminate frame pointer  
							
							... 
							
							
							
							* Break apart saving and restoring registers into separate functions
* Instead of saving single and double FP registers, just save the double
  registers -- aliasing helps preserve the single FP registers as well.
* Request just as much memory for a stub as we actually use
llvm-svn: 8200 
							
						 
						
							2003-08-29 04:22:54 +00:00  
				
					
						
							
							
								 
						
							
								4fd144acc8 
								
							 
						 
						
							
							
								
								Targets should configure themselves based on a Module, not some wierd flags  
							
							... 
							
							
							
							llvm-svn: 8132 
							
						 
						
							2003-08-24 19:49:48 +00:00  
				
					
						
							
							
								 
						
							
								43450cb075 
								
							 
						 
						
							
							
								
								Change all #include'd files to be :: rules instead of : rules  
							
							... 
							
							
							
							llvm-svn: 8019 
							
						 
						
							2003-08-21 20:37:17 +00:00  
				
					
						
							
							
								 
						
							
								a592cac43c 
								
							 
						 
						
							
							
								
								Add support for the sig(set|long)jmp intrinsics  
							
							... 
							
							
							
							llvm-svn: 7951 
							
						 
						
							2003-08-18 16:06:09 +00:00  
				
					
						
							
							
								 
						
							
								7eb05a170a 
								
							 
						 
						
							
							
								
								Spell `necessary' correctly.  
							
							... 
							
							
							
							llvm-svn: 7944 
							
						 
						
							2003-08-18 14:43:39 +00:00  
				
					
						
							
							
								 
						
							
								f365176472 
								
							 
						 
						
							
							
								
								Rename -emitmaps to -enable-maps  
							
							... 
							
							
							
							llvm-svn: 7913 
							
						 
						
							2003-08-16 00:23:16 +00:00  
				
					
						
							
							
								 
						
							
								0238ea5d69 
								
							 
						 
						
							
							
								
								Now that the JIT memory manager allocates as many bytes as necessary rather than  
							
							... 
							
							
							
							rounding up to a page, we need to request (num instrs * 4) bytes. However, I
think that 64 bytes is overkill for the stub function.
llvm-svn: 7888 
							
						 
						
							2003-08-15 18:03:06 +00:00  
				
					
						
							
							
								 
						
							
								7d98bf2921 
								
							 
						 
						
							
							
								
								Fix register and parameter numbers in saving double FP registers.  
							
							... 
							
							
							
							llvm-svn: 7884 
							
						 
						
							2003-08-15 16:15:28 +00:00  
				
					
						
							
							
								 
						
							
								a12864b1bd 
								
							 
						 
						
							
							
								
								* Must save FP registers when calling CompilationCallback(), because FP  
							
							... 
							
							
							
							registers are global, are NOT windowed, and hence can be clobbered!
* Removed unused register shorthand notations
* Fixed and cleaned up comments in inline assembly
llvm-svn: 7853 
							
						 
						
							2003-08-15 00:26:50 +00:00  
				
					
						
							
							
								 
						
							
								4aab2b25b3 
								
							 
						 
						
							
							
								
								Since we now have TableGen editing modes for VIM and (X)Emacs, we no longer need  
							
							... 
							
							
							
							to mark TableGen description files with "C++ mode".
llvm-svn: 7841 
							
						 
						
							2003-08-14 15:16:28 +00:00  
				
					
						
							
							
								 
						
							
								bf0c0100f6 
								
							 
						 
						
							
							
								
								Restore 'nice name' to pass  
							
							... 
							
							
							
							llvm-svn: 7840 
							
						 
						
							2003-08-14 14:43:24 +00:00  
				
					
						
							
							
								 
						
							
								8c14ba96ca 
								
							 
						 
						
							
							
								
								Factory methods for function passes now return type FunctionPass *.  
							
							... 
							
							
							
							llvm-svn: 7839 
							
						 
						
							2003-08-14 06:09:32 +00:00  
				
					
						
							
							
								 
						
							
								74db4c7e27 
								
							 
						 
						
							
							
								
								Unbreak SPARC backend: addPassesToJITCompile and  
							
							... 
							
							
							
							addPassesToEmitMachineCode now both take a FunctionPassManager.
llvm-svn: 7837 
							
						 
						
							2003-08-14 06:04:59 +00:00  
				
					
						
							
							
								 
						
							
								cbd3a40626 
								
							 
						 
						
							
							
								
								Factory methods for function passes now return type FunctionPass *.  
							
							... 
							
							
							
							Get rid of RegisterLLC, which can't handle FunctionPasses anyway.
llvm-svn: 7836 
							
						 
						
							2003-08-14 06:04:49 +00:00  
				
					
						
							
							
								 
						
							
								ec8519d6b6 
								
							 
						 
						
							
							
								
								Unbreak SPARC backend: addPassesToJITCompile and  
							
							... 
							
							
							
							addPassesToEmitMachineCode now both take a FunctionPassManager.
Factory methods for function passes now return type FunctionPass *.
llvm-svn: 7835 
							
						 
						
							2003-08-14 06:04:29 +00:00  
				
					
						
							
							
								 
						
							
								ec611ae0d0 
								
							 
						 
						
							
							
								
								Adjust files for move of mapping info stuff into the Sparc directory  
							
							... 
							
							
							
							llvm-svn: 7802 
							
						 
						
							2003-08-13 02:38:16 +00:00  
				
					
						
							
							
								 
						
							
								d6f22ad8d3 
								
							 
						 
						
							
							
								
								Disable emitting LLVM-to-MI maps, by default.  
							
							... 
							
							
							
							Add -emitmaps options to turn this back on.
llvm-svn: 7774 
							
						 
						
							2003-08-12 15:51:02 +00:00  
				
					
						
							
							
								 
						
							
								029ed09323 
								
							 
						 
						
							
							
								
								Fix va_arg to generate LDDFi for floating point values, instead of LDXi.  
							
							... 
							
							
							
							All non-FP cases use LDXi as before.
llvm-svn: 7765 
							
						 
						
							2003-08-12 03:04:05 +00:00  
				
					
						
							
							
								 
						
							
								2df6ea2f38 
								
							 
						 
						
							
							
								
								Register argument to va_start must be marked as defined!  
							
							... 
							
							
							
							llvm-svn: 7734 
							
						 
						
							2003-08-11 18:42:47 +00:00  
				
					
						
							
							
								 
						
							
								1fe74d144b 
								
							 
						 
						
							
							
								
								Implement LLVM intrinsics `llvm.setjmp' and `llvm.longjmp' as follows:  
							
							... 
							
							
							
							* setjmp() simply returns 0
* longjmp() simply calls abort()
llvm-svn: 7676 
							
						 
						
							2003-08-07 15:43:46 +00:00  
				
					
						
							
							
								 
						
							
								6e4a358f72 
								
							 
						 
						
							
							
								
								Fix sanity-checking in 'maskUnsigned' code to be more precise:  
							
							... 
							
							
							
							use or def-and-use operands can be substituted after one def-only
operand has been substituted.
llvm-svn: 7674 
							
						 
						
							2003-08-07 15:01:26 +00:00  
				
					
						
							
							
								 
						
							
								b611692487 
								
							 
						 
						
							
							
								
								Changing command-line option formats to be more consistent with LLVM style.  
							
							... 
							
							
							
							llvm-svn: 7658 
							
						 
						
							2003-08-06 23:25:25 +00:00  
				
					
						
							
							
								 
						
							
								8f18938d1c 
								
							 
						 
						
							
							
								
								* Renamed option from `nopreselect' to `nopreopt' since it disables more than  
							
							... 
							
							
							
							just PreSelection
* Wrapped code at 80 columns
* Added the DecomposeMultiDimRefs Pass to the JIT compilation path
llvm-svn: 7657 
							
						 
						
							2003-08-06 23:06:21 +00:00  
				
					
						
							
							
								 
						
							
								79226d066e 
								
							 
						 
						
							
							
								
								Use the registers g1 and g5 as temporaries for making far jumps and far calls,  
							
							... 
							
							
							
							because saving i1 and i2 to their ``designated'' stack slots corrupts unknown
memory in other functions, standard libraries, and worse.
In addition, this has the benefit of improving JIT performance because we
eliminate writing out 4 instructions in CompilationCallback() and 2 loads and 2
stores.
llvm-svn: 7653 
							
						 
						
							2003-08-06 22:19:18 +00:00  
				
					
						
							
							
								 
						
							
								792b48f4d1 
								
							 
						 
						
							
							
								
								1. Bug fix: was using SLL instead of SLLX for ULongTy.  Chump.  
							
							... 
							
							
							
							2. Handle fp-to-uint conversions directly here instead of relying on
   a pre-transformation to replace them with the 2-step conversion.
3. Use size rather than explicitly checking types when deciding what
   opcodes to use, wherever possible.  This is less error prone (the
   bug fix above was not the first time!).
4. Float-to-pointer casts shd now work though this hasn't been tested.
llvm-svn: 7645 
							
						 
						
							2003-08-06 18:48:40 +00:00  
				
					
						
							
							
								 
						
							
								26125cbeb5 
								
							 
						 
						
							
							
								
								Remove conversion of fp-to-uint cast into a multi-step cast:  
							
							... 
							
							
							
							this is not an optional transformation on SPARC and is now handled
directly by instruction selection.
llvm-svn: 7644 
							
						 
						
							2003-08-06 18:42:49 +00:00  
				
					
						
							
							
								 
						
							
								4510698acb 
								
							 
						 
						
							
							
								
								SparcV9CodeEmitter.cpp:  
							
							... 
							
							
							
							* Doxygen-ified comments
* Added capability to make far calls (i.e., beyond 30 bits in CALL instr)
  which implies that we need to delete function references that were added by
  the call to addFunctionReference() because the actual call instruction is 10
  instructions away (thanks to 64-bit address construction)
* Cleaned up code that generates far jumps by using an array+loop
SparcV9CodeEmitter.h:
* Explained more of the side-effects of emitFarCall()
llvm-svn: 7639 
							
						 
						
							2003-08-06 16:20:22 +00:00  
				
					
						
							
							
								 
						
							
								21343336d6 
								
							 
						 
						
							
							
								
								This method has now been changed to preserve flags for us!  
							
							... 
							
							
							
							llvm-svn: 7603 
							
						 
						
							2003-08-05 16:59:24 +00:00  
				
					
						
							
							
								 
						
							
								1e88cfb42e 
								
							 
						 
						
							
							
								
								* Removed `using' declaration, now use full namespace qualifier std::string  
							
							... 
							
							
							
							* Simplified code by using an inline function instead of copy-pasted code
llvm-svn: 7597 
							
						 
						
							2003-08-05 16:01:50 +00:00  
				
					
						
							
							
								 
						
							
								5c68269dfd 
								
							 
						 
						
							
							
								
								* Set annul bit to be 0, because the Sparc backend currently does not use it.  
							
							... 
							
							
							
							* Use the name of the predict field instead of just the const 1 in the
  Instruction.
llvm-svn: 7592 
							
						 
						
							2003-08-05 14:34:38 +00:00  
				
					
						
							
							
								 
						
							
								9fb7e0a425 
								
							 
						 
						
							
							
								
								Transition to using 'let X = y' instead of 'set X = y'.  
							
							... 
							
							
							
							llvm-svn: 7565 
							
						 
						
							2003-08-04 05:03:18 +00:00  
				
					
						
							
							
								 
						
							
								fea54c2511 
								
							 
						 
						
							
							
								
								DEBUG got moved to Debug.h  
							
							... 
							
							
							
							llvm-svn: 7495 
							
						 
						
							2003-08-01 22:19:03 +00:00  
				
					
						
							
							
								 
						
							
								c0eb77c24c 
								
							 
						 
						
							
							
								
								Remove makefile complexity by always running tablegen with its final output  
							
							... 
							
							
							
							directory.
llvm-svn: 7485 
							
						 
						
							2003-08-01 20:34:56 +00:00  
				
					
						
							
							
								 
						
							
								89f9397668 
								
							 
						 
						
							
							
								
								Add all arithmetic operators to ConstantExprToString().  
							
							... 
							
							
							
							Note that some generated operators (like &, | or ^) may
not be supported by the assembler -- but if they've got
this far, it's better to generate them and let the assembler decide.
llvm-svn: 7476 
							
						 
						
							2003-08-01 15:55:53 +00:00  
				
					
						
							
							
								 
						
							
								16c2b62d13 
								
							 
						 
						
							
							
								
								*Both* operands of divide need sign-extension before divide (if smaller  
							
							... 
							
							
							
							than machine register size), not just the second operand.
llvm-svn: 7475 
							
						 
						
							2003-08-01 15:54:38 +00:00  
				
					
						
							
							
								 
						
							
								36fcc5d8b3 
								
							 
						 
						
							
							
								
								Put back the separate pass to decompose multi-dimensional references  
							
							... 
							
							
							
							since it is *necessary* for correct code generation.  Only optional
transformations belong in the PreOpts pass (which needs to be renamed
from PreSelection to PreOpts).
llvm-svn: 7474 
							
						 
						
							2003-08-01 15:53:24 +00:00  
				
					
						
							
							
								 
						
							
								a979d4dd27 
								
							 
						 
						
							
							
								
								We no longer need to preprocess SparcV9.td before sending it through tablegen  
							
							... 
							
							
							
							llvm-svn: 7437 
							
						 
						
							2003-07-30 21:00:37 +00:00  
				
					
						
							
							
								 
						
							
								4f6b98900c 
								
							 
						 
						
							
							
								
								When emitting a constant, check for ConstantExpr before  
							
							... 
							
							
							
							ordinary (primitive) types since ConstantExprs may be of primitive type!
llvm-svn: 7418 
							
						 
						
							2003-07-30 12:54:47 +00:00  
				
					
						
							
							
								 
						
							
								33a3edad1b 
								
							 
						 
						
							
							
								
								Conform to the new interface for describing target registers... even though  
							
							... 
							
							
							
							it's currently not used.
llvm-svn: 7416 
							
						 
						
							2003-07-30 05:51:34 +00:00  
				
					
						
							
							
								 
						
							
								3f368e3432 
								
							 
						 
						
							
							
								
								Only regenerate the .inc file if IT has changed, not just if the .td files  
							
							... 
							
							
							
							have changed.
llvm-svn: 7414 
							
						 
						
							2003-07-30 05:49:17 +00:00  
				
					
						
							
							
								 
						
							
								4f94bedfa6 
								
							 
						 
						
							
							
								
								Do not use 'cpp' directly  
							
							... 
							
							
							
							llvm-svn: 7404 
							
						 
						
							2003-07-29 23:04:41 +00:00  
				
					
						
							
							
								 
						
							
								0f918540b6 
								
							 
						 
						
							
							
								
								* Cleaned up and corrected comments wrt instruction formats  
							
							... 
							
							
							
							* Enabled STXFSR instructions
llvm-svn: 7400 
							
						 
						
							2003-07-29 21:21:20 +00:00  
				
					
						
							
							
								 
						
							
								fb8f64a590 
								
							 
						 
						
							
							
								
								Make emitFarCall() public, and add a few comments to functions.  
							
							... 
							
							
							
							llvm-svn: 7399 
							
						 
						
							2003-07-29 20:52:56 +00:00  
				
					
						
							
							
								 
						
							
								e895c2e241 
								
							 
						 
						
							
							
								
								Unify all constant evaluations that depend on register size  
							
							... 
							
							
							
							in ConvertConstantToIntType.
llvm-svn: 7395 
							
						 
						
							2003-07-29 19:59:23 +00:00  
				
					
						
							
							
								 
						
							
								2b630b4ec2 
								
							 
						 
						
							
							
								
								Rename 'dump-asm' to 'dump-input' and really print it just before code-gen.  
							
							... 
							
							
							
							llvm-svn: 7394 
							
						 
						
							2003-07-29 19:58:00 +00:00  
				
					
						
							
							
								 
						
							
								dbc0eb6a2d 
								
							 
						 
						
							
							
								
								Bug fix: don't unnecessarily pretty-print control-characters, some of  
							
							... 
							
							
							
							which were wrong (particularly, '\a' for '\007').
llvm-svn: 7393 
							
						 
						
							2003-07-29 19:57:34 +00:00  
				
					
						
							
							
								 
						
							
								648ce40adf 
								
							 
						 
						
							
							
								
								Add ConvertConstantToIntType() to unify all constant handling  
							
							... 
							
							
							
							that depends on machine register size.
Moved insertCallerSavingCode() to PhyRegAlloc and
moved isRegVolatile and modifiedByCall to TargetRegInfo: they are all
machine independent.  Remove several dead functions.
llvm-svn: 7392 
							
						 
						
							2003-07-29 19:54:41 +00:00  
				
					
						
							
							
								 
						
							
								2353584afc 
								
							 
						 
						
							
							
								
								Add code to support stack spill/temp offsets that don't fit in the  
							
							... 
							
							
							
							immed. field.  Moved insertCallerSavingCode() to PhyRegAlloc: it is
now machine independent.  Remove all uses of PhyRegAlloc.
llvm-svn: 7391 
							
						 
						
							2003-07-29 19:53:21 +00:00  
				
					
						
							
							
								 
						
							
								0db560d8f6 
								
							 
						 
						
							
							
								
								* Correctly emit a far call if the target address does not fit into 30 bits  
							
							... 
							
							
							
							instead of assert()ing
* Fixed a nasty bug where '07' was used instead of register 'o7'
llvm-svn: 7382 
							
						 
						
							2003-07-29 19:00:58 +00:00  
				
					
						
							
							
								 
						
							
								ae92d0bba6 
								
							 
						 
						
							
							
								
								Specify the value type for the register, not just the size.  
							
							... 
							
							
							
							llvm-svn: 7357 
							
						 
						
							2003-07-28 04:25:36 +00:00  
				
					
						
							
							
								 
						
							
								99dbdf7391 
								
							 
						 
						
							
							
								
								This code doesn't modify the LLVM structure, keep stuff const  
							
							... 
							
							
							
							llvm-svn: 7343 
							
						 
						
							2003-07-26 23:04:00 +00:00  
				
					
						
							
							
								 
						
							
								536b19220c 
								
							 
						 
						
							
							
								
								(1) Major fix to the way unused regs. are marked and found for the FP  
							
							... 
							
							
							
							Single and FP double reg types (which share the same reg class).
    Now all methods marking/finding unused regs consider the regType
    within the reg class, and SparcFloatRegClass specializes this code.
(2) Remove machine-specific regalloc. methods that are no longer needed.
    In particular, arguments and return value from a call do not need
    machine-specific code for allocation.
(3) Rename TargetRegInfo::getRegType variants to avoid unintentional
    overloading when an include file is omitted.
llvm-svn: 7334 
							
						 
						
							2003-07-25 21:12:15 +00:00  
				
					
						
							
							
								 
						
							
								9b17ad16c4 
								
							 
						 
						
							
							
								
								1. Fix a case that was marking the invalid reg. num. (-1) as used,  
							
							... 
							
							
							
							causing a nasty array bound error later.
2. Fix silly typo causing logical shift of unsigned long to use
   SRL instead of SRLX.
llvm-svn: 7330 
							
						 
						
							2003-07-25 21:08:58 +00:00  
				
					
						
							
							
								 
						
							
								f26a8ee580 
								
							 
						 
						
							
							
								
								Remove redundant const qualifiers from cast<> expressions  
							
							... 
							
							
							
							llvm-svn: 7253 
							
						 
						
							2003-07-23 15:30:06 +00:00  
				
					
						
							
							
								 
						
							
								6077c3195f 
								
							 
						 
						
							
							
								
								Simplify code by using ConstantInt::getRawValue instead of checking to see  
							
							... 
							
							
							
							whether the constant is signed or unsigned, then casting
llvm-svn: 7252 
							
						 
						
							2003-07-23 15:22:26 +00:00  
				
					
						
							
							
								 
						
							
								c783297812 
								
							 
						 
						
							
							
								
								Simplify code a bit  
							
							... 
							
							
							
							llvm-svn: 7217 
							
						 
						
							2003-07-21 19:56:49 +00:00  
				
					
						
							
							
								 
						
							
								bd2d0577fb 
								
							 
						 
						
							
							
								
								Added special consideration for instrumentation strategy  
							
							... 
							
							
							
							llvm-svn: 7208 
							
						 
						
							2003-07-20 15:39:30 +00:00  
				
					
						
							
							
								 
						
							
								e32251b56d 
								
							 
						 
						
							
							
								
								Fixed the number translation scheme for the integer condition code registers: it  
							
							... 
							
							
							
							now works in instructions which require a 2-bit or 3-bit INTcc code.
Incidentally, that means that the representation of INTcc registers is now the
same in both integer and FP instructions. Thus, code became much simpler and
cleaner.
llvm-svn: 7185 
							
						 
						
							2003-07-16 20:30:40 +00:00  
				
					
						
							
							
								 
						
							
								bc0ecb29c8 
								
							 
						 
						
							
							
								
								The name should really be `simm11' to follow the naming convention, but this has  
							
							... 
							
							
							
							no change in functionality.
llvm-svn: 7184 
							
						 
						
							2003-07-16 20:27:44 +00:00  
				
					
						
							
							
								 
						
							
								d49975cf29 
								
							 
						 
						
							
							
								
								No need for a second immediate field if the class already inherits one.  
							
							... 
							
							
							
							llvm-svn: 7182 
							
						 
						
							2003-07-15 21:27:14 +00:00  
				
					
						
							
							
								 
						
							
								4cf012d845 
								
							 
						 
						
							
							
								
								Encode predict = 1 by default, because the Sparc assembler does this.  
							
							... 
							
							
							
							llvm-svn: 7181 
							
						 
						
							2003-07-15 21:26:49 +00:00  
				
					
						
							
							
								 
						
							
								384cb5dd10 
								
							 
						 
						
							
							
								
								Correctly handle calls to functions which are further away than 2**32 bits will  
							
							... 
							
							
							
							allow, i.e. make a sequence of instructions to enable an indirect call using
jump-and-link and 2 temporary registers (which we save and ultimately restore).
Warning: if the delay slot of a function call is used to do meaningful work and
not just a NOP, this behavior is incorrect. However, the Sparc backend does not
yet utilize the delay slots effectively, so it is not necessary to make an
overly complicated algorithm for something that's not used.
llvm-svn: 7178 
							
						 
						
							2003-07-15 19:09:43 +00:00  
				
					
						
							
							
								 
						
							
								b402819ddf 
								
							 
						 
						
							
							
								
								* Added support for the %ccr register  
							
							... 
							
							
							
							* FP double registers are now coded correctly
* Removed function which converted registers based on register types, it was
  broken (because regTypes are broken)
llvm-svn: 7175 
							
						 
						
							2003-07-14 23:26:03 +00:00  
				
					
						
							
							
								 
						
							
								7fdaab4f68 
								
							 
						 
						
							
							
								
								The word `separate' only has one `e'.  
							
							... 
							
							
							
							llvm-svn: 7173 
							
						 
						
							2003-07-14 17:20:40 +00:00  
				
					
						
							
							
								 
						
							
								4f420ce3a3 
								
							 
						 
						
							
							
								
								Several important bug fixes:  
							
							... 
							
							
							
							(1) Cannot use ANDN(ot), ORN, and XORN for boolean ops, only bitwise ops.
(2) Conditional move instructions must distinguish signed and unsigned
    condition codes, e.g., MOVLE vs. MOVLEU.
(3) Conditional-move-on-register was using the cond-move-on-cc opcodes,
    which produces a valid-looking instruction with bogus registers!
(4) Here's a really cute one: dividing-by-2^k for negative numbers needs to
    add 2^k-1 before shifting, not add 1 after shifting.  Sadly, these
    are the same when k=0 so our poor test case worked fine.
(5) Casting between signed and unsigned values was not correct:
    completely reimplemented.
(6) Zero-extension on unsigned values was bogus: I was only doing the
    SRL and not the SLLX before it.  Don't know WHAT I was thinking!
(7) And the most important class of changes: Sign-extensions on signed values.
    Signed values are not sign-extended after ordinary operations,
    so they must be sign-extended before the following cases:
	-- passing to an external or unknown function
	-- returning from a function
	-- using as operand 2 of DIV or REM
	-- using as either operand of condition-code setting operation
           (currently only SUBCC), with smaller than 32-bit operands
Also, a couple of improvements:
(1) Fold cast-to-bool into Not(bool).  Need to do this for And, Or, XOR also.
(2) Convert SetCC-Const into a conditional-move-on-register (case 41)
    if the constant is 0.  This was only being done for branch-on-SetCC-Const
    when the branch is folded with the SetCC-Const.
llvm-svn: 7159 
							
						 
						
							2003-07-10 20:07:54 +00:00  
				
					
						
							
							
								 
						
							
								8ea738a9ff 
								
							 
						 
						
							
							
								
								Bug fix in creating constants: need 1U << 31, not 1 << 31.  
							
							... 
							
							
							
							llvm-svn: 7158 
							
						 
						
							2003-07-10 19:48:19 +00:00  
				
					
						
							
							
								 
						
							
								2f90c823a2 
								
							 
						 
						
							
							
								
								Fold cast-to-bool into not.  Later, this should also be folded into other  
							
							... 
							
							
							
							boolean operations: AND, OR, XOR.
llvm-svn: 7157 
							
						 
						
							2003-07-10 19:47:42 +00:00  
				
					
						
							
							
								 
						
							
								6528067646 
								
							 
						 
						
							
							
								
								Several fixes to handling of int CC register:  
							
							... 
							
							
							
							(1) An int CC live range must be spilled if there are any interferences,
    even if no other "neighbour" in the interf. graph has been allocated
    that reg. yet.  This is actually true of any class with only one reg!
(2) SparcIntCCRegClass::colorIGNode sets the color even if the LR must
    be spilled so that the machine-independent spill code doesn't have to
    make the machine-dependent decision of which CC name to use based on
    operand type: %xcc or %icc.  (These are two halves of the same register.)
(3) LR->isMarkedForSpill() is no longer the same as LR->hasColor().
    These should never have been the same, and this is necessary now for #2 .
(4) All RDCCR and WRCCR instructions are directly generated with the
    phony number for %ccr so that EmitAssembly/EmitBinary doesn't have to
    deal with this.
llvm-svn: 7151 
							
						 
						
							2003-07-10 19:42:11 +00:00  
				
					
						
							
							
								 
						
							
								ea6e7a5d72 
								
							 
						 
						
							
							
								
								Elaborated assembly syntax of instructions in the comments.  
							
							... 
							
							
							
							llvm-svn: 7120 
							
						 
						
							2003-07-07 22:18:42 +00:00  
				
					
						
							
							
								 
						
							
								25a49f0cf1 
								
							 
						 
						
							
							
								
								Removed unnecessary assignment (it was taken care by a superclass) and clarified  
							
							... 
							
							
							
							some comments.
llvm-svn: 7119 
							
						 
						
							2003-07-07 22:18:06 +00:00  
				
					
						
							
							
								 
						
							
								c1db0fdd7e 
								
							 
						 
						
							
							
								
								Moved RegClassIDs enum to be next to the RegTypes enum.  
							
							... 
							
							
							
							llvm-svn: 7114 
							
						 
						
							2003-07-07 16:52:39 +00:00  
				
					
						
							
							
								 
						
							
								55c8e21073 
								
							 
						 
						
							
							
								
								Correction to last fix: Pointer types do not return true in Type::IsIntegral().  
							
							... 
							
							
							
							llvm-svn: 7113 
							
						 
						
							2003-07-06 22:50:31 +00:00  
				
					
						
							
							
								 
						
							
								d09c4c34c0 
								
							 
						 
						
							
							
								
								Major bug fix though it happened rarely (only on a compare after an  
							
							... 
							
							
							
							integer overflow):
We need to use %icc and not %xcc for comparisons on 32-bit or smaller
integer values.
llvm-svn: 7111 
							
						 
						
							2003-07-06 20:13:59 +00:00  
				
					
						
							
							
								 
						
							
								c4499d6cb1 
								
							 
						 
						
							
							
								
								Make the RegClassID values public -- there is no other way to get them.  
							
							... 
							
							
							
							llvm-svn: 7109 
							
						 
						
							2003-07-06 19:53:59 +00:00  
				
					
						
							
							
								 
						
							
								bb95605448 
								
							 
						 
						
							
							
								
								Apparently, the "regType" and "regClass" used in the Sparc backend are not both  
							
							... 
							
							
							
							correct: empirically, "regType" is wrong for a number of registers. Thus, one
can only rely on the "regClass" to figure out what kind of register one is
dealing with.
This change switches to using only "regClass" and adds a few extra DEBUG() print
statements and a few clean-ups in comments and code, mostly minor.
llvm-svn: 7103 
							
						 
						
							2003-07-03 18:36:47 +00:00  
				
					
						
							
							
								 
						
							
								20d93ca01d 
								
							 
						 
						
							
							
								
								* Force all "don't care" bits to 0 so that there are absolutely no unset bits in  
							
							... 
							
							
							
							the TableGen descriptions; all unset bits are thus errors.
* As a result, found and fixed instructions where some operands were not
  actually assigned into the right portion of the instruction.
llvm-svn: 7074 
							
						 
						
							2003-07-02 19:37:48 +00:00  
				
					
						
							
							
								 
						
							
								eccc0dac91 
								
							 
						 
						
							
							
								
								The classes F4_3 and F4_4 have an `rd' operand that needs to be set.  
							
							... 
							
							
							
							llvm-svn: 7073 
							
						 
						
							2003-07-02 18:27:47 +00:00  
				
					
						
							
							
								 
						
							
								81951e1142 
								
							 
						 
						
							
							
								
								Properly fix instruction syntax in comments, using `imm' for instructions that  
							
							... 
							
							
							
							use an immediate value instead of a register.
llvm-svn: 7072 
							
						 
						
							2003-07-02 18:15:43 +00:00  
				
					
						
							
							
								 
						
							
								6f9caec57f 
								
							 
						 
						
							
							
								
								Fixed instruction syntax in the comments (specifies how instr is used).  
							
							... 
							
							
							
							llvm-svn: 7071 
							
						 
						
							2003-07-02 18:02:58 +00:00  
				
					
						
							
							
								 
						
							
								7a4abf89fa 
								
							 
						 
						
							
							
								
								Force fixed-size but large alloca objects to the dynamically allocated  
							
							... 
							
							
							
							area to avoid using up precious stack space within the 4095 offset limit
from %fp.  Such objects that would themselves live at a large offset
were being put there already so this is a simple change.
llvm-svn: 7066 
							
						 
						
							2003-07-02 06:59:22 +00:00  
				
					
						
							
							
								 
						
							
								cf952cb504 
								
							 
						 
						
							
							
								
								(1) Major bug fix: DecomposeArrayRef() replaces its argument instr. and  
							
							... 
							
							
							
							deletes it, but we were merrily trying to fix the operands of that
    instruction anyway!  Instead, fix the replacement instruction.
(2) An Improvement: Check for and extract global values in all operands,
    not just in known pointer operands.  For example, they can occur in
    call arguments, and probably other unforeseeable places as well.
    This also eliminates the special-case handling of Load and Store.
llvm-svn: 7053 
							
						 
						
							2003-07-02 01:23:15 +00:00  
				
					
						
							
							
								 
						
							
								b5f8ada255 
								
							 
						 
						
							
							
								
								Bug/case fixes:  
							
							... 
							
							
							
							(1) select: Ok to convert a pointer to a float or double.
(2) regalloc: Some MachineInstr* for caller-saving code before a call
    were being inserted before and after the call!
(3) Don't insert the caller-saving instructions in the
    MachineCodeForInstruction for the Call instruction.
    *All* instructions generated by register allocation need to be
    recorded in those maps, but it needs to be done uniformly.
llvm-svn: 7051 
							
						 
						
							2003-07-02 01:13:57 +00:00  
				
					
						
							
							
								 
						
							
								3ef61afb76 
								
							 
						 
						
							
							
								
								Merged in autoconf branch.  This provides configuration via the autoconf  
							
							... 
							
							
							
							system.
llvm-svn: 7014 
							
						 
						
							2003-06-30 21:59:07 +00:00  
				
					
						
							
							
								 
						
							
								50b1d41ad4 
								
							 
						 
						
							
							
								
								Add the padding needed for variable-size alloca's, which should work now.  
							
							... 
							
							
							
							llvm-svn: 6859 
							
						 
						
							2003-06-23 02:13:57 +00:00  
				
					
						
							
							
								 
						
							
								9cb6b02dc9 
								
							 
						 
						
							
							
								
								Some preprocessors doen't support // comments and get confused  
							
							... 
							
							
							
							llvm-svn: 6821 
							
						 
						
							2003-06-20 23:14:50 +00:00  
				
					
						
							
							
								 
						
							
								f6aaa90e8d 
								
							 
						 
						
							
							
								
								RDCCR defines arg.  #1 , not arg.  #2 .  
							
							... 
							
							
							
							llvm-svn: 6796 
							
						 
						
							2003-06-20 11:32:11 +00:00  
				
					
						
							
							
								 
						
							
								cf8c4f5fe4 
								
							 
						 
						
							
							
								
								lib/Target/Sparc/Sparc.cpp:  
							
							... 
							
							
							
							Move LowerAllocations, PrintFunction, and SymbolStripping passes, and
  the corresponding -disable-strip and -d options, over here to the SPARC
  target-specific bits of llc. Rename -d to -dump-asm.
tools/llc/Makefile:
 Reindent. Add x86 library so that llc compiles again.
tools/llc/llc.cpp:
 Remove support for running arbitrary optimization passes. Use opt instead.
 Remove LowerAllocations, PrintFunction, and SymbolStripping passes, as noted
  above.
 Allow user to select a backend (x86 or SPARC); default to guessing from
  the endianness/pointer size of the input bytecode file.
 Fix typos.
 Delete empty .s file and exit with error status if target does not support
  static compilation.
llvm-svn: 6776 
							
						 
						
							2003-06-18 21:14:23 +00:00  
				
					
						
							
							
								 
						
							
								d768c51f1b 
								
							 
						 
						
							
							
								
								These instructions really take three operands.  This fixes some assertions  
							
							... 
							
							
							
							llvm-svn: 6765 
							
						 
						
							2003-06-18 15:09:02 +00:00  
				
					
						
							
							
								 
						
							
								3bcde17e00 
								
							 
						 
						
							
							
								
								Rename FInfo.cpp to FunctionInfo.cpp, eliminate FInfo.h  
							
							... 
							
							
							
							llvm-svn: 6712 
							
						 
						
							2003-06-16 15:31:52 +00:00  
				
					
						
							
							
								 
						
							
								617ea34a6d 
								
							 
						 
						
							
							
								
								move contents of include/llvm/Reoptimizer/Mapping/FInfo.h into here, it is sparc internal  
							
							... 
							
							
							
							llvm-svn: 6711 
							
						 
						
							2003-06-16 15:31:09 +00:00  
				
					
						
							
							
								 
						
							
								cb9ef2bccc 
								
							 
						 
						
							
							
								
								Fix invalid number of arguments problem  
							
							... 
							
							
							
							llvm-svn: 6692 
							
						 
						
							2003-06-16 12:03:00 +00:00  
				
					
						
							
							
								 
						
							
								fafd3d2b31 
								
							 
						 
						
							
							
								
								Updated for the new projects Makefile.  
							
							... 
							
							
							
							llvm-svn: 6678 
							
						 
						
							2003-06-11 13:49:11 +00:00  
				
					
						
							
							
								 
						
							
								ff61facc3c 
								
							 
						 
						
							
							
								
								Print address out as hex.  
							
							... 
							
							
							
							llvm-svn: 6657 
							
						 
						
							2003-06-06 09:53:28 +00:00  
				
					
						
							
							
								 
						
							
								ad2ab66d89 
								
							 
						 
						
							
							
								
								Added 'r' and 'i' versions to WRCCR.  
							
							... 
							
							
							
							llvm-svn: 6656 
							
						 
						
							2003-06-06 09:52:58 +00:00  
				
					
						
							
							
								 
						
							
								2969ec5266 
								
							 
						 
						
							
							
								
								* Changed Bcc instructions to behave like BPcc instructions  
							
							... 
							
							
							
							* BPA and BPN do not take a %cc register as a parameter
* SLL/SRL/SRA{r,i}5 are there for a reason - they are ONLY 32-bit instructions
* Likewise, SLL/SRL/SRAX{r,i}6 are only 64-bit
* Added WRCCR{r,i} opcodes
llvm-svn: 6655 
							
						 
						
							2003-06-06 09:52:23 +00:00  
				
					
						
							
							
								 
						
							
								0941cd11c8 
								
							 
						 
						
							
							
								
								* Removed PreSelection pass because that is now done in the JIT  
							
							... 
							
							
							
							* Removed instruction scheduling as it is too slow to run in a JIT environment
* Removed other passes because they aren't necessary and can slow JIT down
llvm-svn: 6652 
							
						 
						
							2003-06-06 07:11:16 +00:00  
				
					
						
							
							
								 
						
							
								b7f76d32fe 
								
							 
						 
						
							
							
								
								Fixed a bunch of test cases in test/Regression/Jello which could not get the  
							
							... 
							
							
							
							address of a floating-point (allocated via ConstantPool) correctly.
llvm-svn: 6647 
							
						 
						
							2003-06-06 04:41:22 +00:00  
				
					
						
							
							
								 
						
							
								905ffcb780 
								
							 
						 
						
							
							
								
								* If a global is not a function, just ask the MachineCodeEmitter for the addr  
							
							... 
							
							
							
							* Do not block a print statement with a DEBUG() guard if we're going to abort()
llvm-svn: 6645 
							
						 
						
							2003-06-06 03:35:37 +00:00  
				
					
						
							
							
								 
						
							
								ee21ccc607 
								
							 
						 
						
							
							
								
								The SUB*i instructions belong to a different class than their SUB*r brethren.  
							
							... 
							
							
							
							llvm-svn: 6644 
							
						 
						
							2003-06-06 03:34:47 +00:00  
				
					
						
							
							
								 
						
							
								1c1568ed68 
								
							 
						 
						
							
							
								
								Put all debug print statements under the DEBUG() guard to make output clean so  
							
							... 
							
							
							
							that tests can automatically diff the output.
llvm-svn: 6642 
							
						 
						
							2003-06-06 00:26:11 +00:00  
				
					
						
							
							
								 
						
							
								ee964e2690 
								
							 
						 
						
							
							
								
								Fixed confusion between register classes and register types.  
							
							... 
							
							
							
							Now %fcc registers are recognized correctly.
llvm-svn: 6640 
							
						 
						
							2003-06-05 23:51:10 +00:00  
				
					
						
							
							
								 
						
							
								97a04b24cc 
								
							 
						 
						
							
							
								
								Added missing directive to store the instruction name.  
							
							... 
							
							
							
							llvm-svn: 6639 
							
						 
						
							2003-06-05 23:35:11 +00:00  
				
					
						
							
							
								 
						
							
								90fd75efa4 
								
							 
						 
						
							
							
								
								Moved predict and annul fields to the end of each individual instruction  
							
							... 
							
							
							
							class, because they are currently unused.
llvm-svn: 6638 
							
						 
						
							2003-06-05 23:33:15 +00:00  
				
					
						
							
							
								 
						
							
								fd394b766a 
								
							 
						 
						
							
							
								
								Do not preset the cc register, the instructions actually use it.  
							
							... 
							
							
							
							llvm-svn: 6637 
							
						 
						
							2003-06-05 23:30:27 +00:00  
				
					
						
							
							
								 
						
							
								82dca3714f 
								
							 
						 
						
							
							
								
								Minor tuning -- avoid a non-inlinable function call on every operand.  
							
							... 
							
							
							
							Also, reorder a couple of functions for inlining.
llvm-svn: 6635 
							
						 
						
							2003-06-05 21:12:56 +00:00  
				
					
						
							
							
								 
						
							
								27afe52c4c 
								
							 
						 
						
							
							
								
								Added lazy function resolution to the JIT.  
							
							... 
							
							
							
							llvm-svn: 6633 
							
						 
						
							2003-06-05 20:52:06 +00:00  
				
					
						
							
							
								 
						
							
								9ac56f847f 
								
							 
						 
						
							
							
								
								* The textual output of (non-)predicted FP branches is the same.  
							
							... 
							
							
							
							* Stop mapping FBcc instructions to deprecated opcodes, map to FBPcc instead.
* Fixed opf in FCMPxy instructions.
llvm-svn: 6632 
							
						 
						
							2003-06-05 20:51:37 +00:00  
				
					
						
							
							
								 
						
							
								cbbe7ac699 
								
							 
						 
						
							
							
								
								All store instructions really want 'rd' in the first field.  
							
							... 
							
							
							
							Special cases: STFSRx and STXFSRx - they operate on predefined rd=0 or rd=1, and
expect %fsr as the parameter in assembly. They are disabled (since not used)
until an encoding, both for code generation and output, is chosen.
llvm-svn: 6619 
							
						 
						
							2003-06-05 01:06:10 +00:00  
				
					
						
							
							
								 
						
							
								98467a7a18 
								
							 
						 
						
							
							
								
								Added missing 'rs1' field to F3_rdrs1imm13, 'rd' to F3_rdrs1rs2.  
							
							... 
							
							
							
							llvm-svn: 6618 
							
						 
						
							2003-06-05 00:39:45 +00:00  
				
					
						
							
							
								 
						
							
								98eee41e0e 
								
							 
						 
						
							
							
								
								lib/CodeGen/Mapping/MappingInfo.cpp:  
							
							... 
							
							
							
							Update file comment to contain a bunch of the overview mapping-info
  documentation previously buried within the file.
 Remove some unnecessary include/using stmts.
 Rename pass to MappingInfoCollector.
 Rewrite a lot of it so it doesn't use global instance variables and so
  it outputs into MappingInfo objects and then dumps those out, instead of going
  straight to an assembly file.
 Change name of factory to getMappingInfoCollector.
 Fold prologue & epilogue writers into MappingInfo methods.
lib/Target/Sparc/FInfo.cpp:
 Correct file comment to reflect above change
lib/Target/Sparc/Sparc.cpp:
 Change name of factory to getMappingInfoCollector.
llvm-svn: 6617 
							
						 
						
							2003-06-04 22:07:12 +00:00  
				
					
						
							
							
								 
						
							
								44b2d7a56f 
								
							 
						 
						
							
							
								
								Add file comment. Include <vector> and <string>.  Update include guards  
							
							... 
							
							
							
							to reflect file's current location.  Add definition of class
MappingInfo.
llvm-svn: 6616 
							
						 
						
							2003-06-04 22:02:47 +00:00  
				
					
						
							
							
								 
						
							
								365a47bdbb 
								
							 
						 
						
							
							
								
								Revert brians patch to get mapping info working again  
							
							... 
							
							
							
							sorry dude
llvm-svn: 6615 
							
						 
						
							2003-06-04 21:01:12 +00:00  
				
					
						
							
							
								 
						
							
								cbf828dd0d 
								
							 
						 
						
							
							
								
								Had to comment out a line in outByte() to get it to compile because Out and tmp were  
							
							... 
							
							
							
							undeclared. I was not sure what Brian wanted, so I will let him fix this. But now it compiles.
llvm-svn: 6614 
							
						 
						
							2003-06-04 20:53:46 +00:00  
				
					
						
							
							
								 
						
							
								efafdf8046 
								
							 
						 
						
							
							
								
								* Instead of re-inventing the MachineConstantPool emitter that's already given  
							
							... 
							
							
							
							in Emitter.cpp, just convert the Sparc version of the constant pool into
  what's already supported and inter-operate.
* Implemented a first pass at lazy function resolution in the JITResolver. That
  required adding a SparcV9CodeEmitter pointer to simplify generating
  bit-patterns of the instructions.
* SparcV9CodeEmitter now creates and destroys static TheJITResolver, which makes
  sense because the SparcV9CodeEmitter is the only user of TheJITResolver, and
  lives for the entire duration of the JIT (via PassManager which lives in VM).
* Changed all return values in the JITResolver to uint64_t because of the 64-bit
  Sparc architecture.
* Added a new version of getting the value of a GlobalValue in the
  SparcV9CodeEmitter, which now works for already-generated functions (JITted or
  library functions).
* Removed little-used and unused functions, cleaning up the internal view of the
  SparcV9CodeEmitter.
llvm-svn: 6612 
							
						 
						
							2003-06-04 20:01:13 +00:00  
				
					
						
							
							
								 
						
							
								49833da4bf 
								
							 
						 
						
							
							
								
								Make writeNumber() void. Get ready to decouple it from .byte directive output.  
							
							... 
							
							
							
							llvm-svn: 6609 
							
						 
						
							2003-06-04 18:17:22 +00:00  
				
					
						
							
							
								 
						
							
								7be5063ccc 
								
							 
						 
						
							
							
								
								Added the 4.7 instruction class and all the FMOVcc instructions in them.  
							
							... 
							
							
							
							llvm-svn: 6601 
							
						 
						
							2003-06-04 04:48:31 +00:00  
				
					
						
							
							
								 
						
							
								11cfb6f7dc 
								
							 
						 
						
							
							
								
								Comment out opcodes currently unused in the Sparc backend.  
							
							... 
							
							
							
							llvm-svn: 6597 
							
						 
						
							2003-06-04 02:57:55 +00:00  
				
					
						
							
							
								 
						
							
								37586db4b5 
								
							 
						 
						
							
							
								
								Added instruction format class 3.15 and floating-point compare instructions.  
							
							... 
							
							
							
							llvm-svn: 6594 
							
						 
						
							2003-06-04 02:26:14 +00:00  
				
					
						
							
							
								 
						
							
								46666cfcdd 
								
							 
						 
						
							
							
								
								Avoid generating a getelementptr instruction of a function  
							
							... 
							
							
							
							llvm-svn: 6591 
							
						 
						
							2003-06-04 01:24:40 +00:00  
				
					
						
							
							
								 
						
							
								49e14432c2 
								
							 
						 
						
							
							
								
								Make the write*map methods more self-contained. Document some more.  
							
							... 
							
							
							
							llvm-svn: 6589 
							
						 
						
							2003-06-03 19:30:15 +00:00  
				
					
						
							
							
								 
						
							
								71ab329f08 
								
							 
						 
						
							
							
								
								I documented this file, in an attempt to understand it, with a view toward  
							
							... 
							
							
							
							rewriting it.  I also vacuumed out all the commented-out code and
inaccurate comments, etc.
(We need to put the mapping information in a data structure so that we can
pass it out to the JIT, instead of automagically converting it to .byte
directives.)
llvm-svn: 6574 
							
						 
						
							2003-06-03 07:56:05 +00:00  
				
					
						
							
							
								 
						
							
								0521493aa9 
								
							 
						 
						
							
							
								
								Use the new -o tablegen option  
							
							... 
							
							
							
							llvm-svn: 6572 
							
						 
						
							2003-06-03 05:06:33 +00:00  
				
					
						
							
							
								 
						
							
								2712333e5f 
								
							 
						 
						
							
							
								
								Constants are laid out in memory in PC-relative form.  
							
							... 
							
							
							
							llvm-svn: 6568 
							
						 
						
							2003-06-03 03:24:12 +00:00  
				
					
						
							
							
								 
						
							
								c8728a147e 
								
							 
						 
						
							
							
								
								Added opcode conversion for conditional move of integers.  
							
							... 
							
							
							
							llvm-svn: 6567 
							
						 
						
							2003-06-03 03:23:35 +00:00  
				
					
						
							
							
								 
						
							
								cdf6256940 
								
							 
						 
						
							
							
								
								* Convert load/store opcodes from register to immediate forms.  
							
							... 
							
							
							
							* Stop code from wrapping to the next line.
llvm-svn: 6566 
							
						 
						
							2003-06-03 03:21:58 +00:00  
				
					
						
							
							
								 
						
							
								3cdf52a644 
								
							 
						 
						
							
							
								
								Convert load/store opcodes from register to immediate forms, if necessary.  
							
							... 
							
							
							
							llvm-svn: 6565 
							
						 
						
							2003-06-03 03:20:57 +00:00  
				
					
						
							
							
								 
						
							
								b54bf54065 
								
							 
						 
						
							
							
								
								Store instructions are different from other Format 3.1/3.2 instructions in that  
							
							... 
							
							
							
							they prefer the destination register to be last. Thus, two new classes were made
for them that accomodate for having this layout of operands (F3_1rd, F3_2rd).
llvm-svn: 6564 
							
						 
						
							2003-06-03 03:20:14 +00:00  
				
					
						
							
							
								 
						
							
								bbd10f96a2 
								
							 
						 
						
							
							
								
								* Added section A.34: Move FP register on int reg condition (FMOVr)  
							
							... 
							
							
							
							* Labeled sections that are not currently used in the Sparc backend as not
  requiring completion at this time.
llvm-svn: 6562 
							
						 
						
							2003-06-03 01:16:27 +00:00  
				
					
						
							
							
								 
						
							
								e9465fc1d4 
								
							 
						 
						
							
							
								
								* Removed unused classes (rd field is always mentioned last); fixed comments.  
							
							... 
							
							
							
							* Added instruction classes which start building from rs1, then rs2, and rd.
* Fixed order of operands in classes 4.1 and 4.2; added 4.6 .
llvm-svn: 6561 
							
						 
						
							2003-06-03 01:13:53 +00:00  
				
					
						
							
							
								 
						
							
								ace89ff224 
								
							 
						 
						
							
							
								
								* Removed unused classes: the rd field is always mentioned as the last reg.  
							
							... 
							
							
							
							* Added new classes which start building from rs1, adding rs2, and then rd.
* Fixed order of operands in classes 3.11, 3.12, 3.16, and 3.17 .
* Fixed comments to reflect Real Life (tm).
* Removed "don't care" commented out assignments and dead classes (#if 0).
llvm-svn: 6560 
							
						 
						
							2003-06-03 01:11:58 +00:00  
				
					
						
							
							
								 
						
							
								4485c795a9 
								
							 
						 
						
							
							
								
								The rd field goes after the immediate field in format 2.1 instructions.  
							
							... 
							
							
							
							llvm-svn: 6559 
							
						 
						
							2003-06-03 01:04:04 +00:00  
				
					
						
							
							
								 
						
							
								f545b2402f 
								
							 
						 
						
							
							
								
								Added MOVR (move int reg on register condition), aka comparison with zero.  
							
							... 
							
							
							
							None of these instructions are actually used in the Sparc backend, so no changes
were required in the instruction selector.
llvm-svn: 6549 
							
						 
						
							2003-06-02 21:16:54 +00:00  
				
					
						
							
							
								 
						
							
								843d6933a0 
								
							 
						 
						
							
							
								
								SparcInstr.def: added 'r' and 'i' versions of MOV(F)cc instructions  
							
							... 
							
							
							
							SparcInstrSelection.cpp:
* Fixed opcodes to return correct 'i' version since the two functions are each
  only used in one place.
* Changed name of function to have an 'i' in the name to signify that they each
  return an immediate form of the opcode.
* Added a warning if either of the functions is ever used in a context which
  requires a register-version opcode.
SparcV9_F4.td: fixed class F4_3, added F4_4 and notes that F4_{1,2} need fixing
SparcV9.td: added the MOV(F)cc instructions
llvm-svn: 6548 
							
						 
						
							2003-06-02 20:55:14 +00:00  
				
					
						
							
							
								 
						
							
								609b55c255 
								
							 
						 
						
							
							
								
								* Added casts to/from floating-point to integers.  
							
							... 
							
							
							
							* Changed // comments to #ifdef 0 to maintain syntax highlighting.
llvm-svn: 6546 
							
						 
						
							2003-06-02 19:08:37 +00:00  
				
					
						
							
							
								 
						
							
								55c6331637 
								
							 
						 
						
							
							
								
								Clean up after merging in SparcEmitter.cpp; branches and return work again.  
							
							... 
							
							
							
							llvm-svn: 6536 
							
						 
						
							2003-06-02 05:24:46 +00:00  
				
					
						
							
							
								 
						
							
								ce62d36615 
								
							 
						 
						
							
							
								
								Merged in tools/lli/JIT/SparcEmitter.cpp, coupled with the JITResolver taken  
							
							... 
							
							
							
							from lib/Target/X86/X86CodeEmitter.cpp .
llvm-svn: 6530 
							
						 
						
							2003-06-02 04:12:39 +00:00  
				
					
						
							
							
								 
						
							
								bca71e4735 
								
							 
						 
						
							
							
								
								Deal with %lo/%lm/%hm/%hh flags in getMachineOpValue().  
							
							... 
							
							
							
							llvm-svn: 6522 
							
						 
						
							2003-06-02 02:13:26 +00:00  
				
					
						
							
							
								 
						
							
								13dffdefef 
								
							 
						 
						
							
							
								
								Make the .inc file depend on $(TBLGEN), so that changes to TableGen followed  
							
							... 
							
							
							
							by a re-link of TableGen will notify Make to rebuild the .inc file.
llvm-svn: 6512 
							
						 
						
							2003-06-01 04:52:51 +00:00  
				
					
						
							
							
								 
						
							
								e6c3ee6b07 
								
							 
						 
						
							
							
								
								Add map info for arguments to call (copies)  
							
							... 
							
							
							
							llvm-svn: 6503 
							
						 
						
							2003-06-01 02:48:23 +00:00  
				
					
						
							
							
								 
						
							
								ba6f8e274a 
								
							 
						 
						
							
							
								
								Several bug fixes: globals in call operands were not being pulled out;  
							
							... 
							
							
							
							globals in some other places may not have been pulled out either;
globals in phi operands were being put just before the phi instead of
in the predecessor basic blocks.
llvm-svn: 6466 
							
						 
						
							2003-05-31 07:34:57 +00:00  
				
					
						
							
							
								 
						
							
								a83804a29a 
								
							 
						 
						
							
							
								
								Extensive changes to the way code generation occurs for function  
							
							... 
							
							
							
							call arguments and return values:
Now all copy operations before and after a call are generated during
selection instead of during register allocation.
The values are copied to virtual registers (or to the stack), but
in the former case these operands are marked with the correct physical
registers according to the calling convention.
Although this complicates scheduling and does not work well with
live range analysis, it simplifies the machine-dependent part of
register allocation.
llvm-svn: 6465 
							
						 
						
							2003-05-31 07:32:01 +00:00  
				
					
						
							
							
								 
						
							
								96b801ab56 
								
							 
						 
						
							
							
								
								Reverting previous beautification changes.  
							
							... 
							
							
							
							llvm-svn: 6464 
							
						 
						
							2003-05-31 07:27:17 +00:00  
				
					
						
							
							
								 
						
							
								bf69b7fe69 
								
							 
						 
						
							
							
								
								Removed useless code -- the byte order of output code is correct as is.  
							
							... 
							
							
							
							llvm-svn: 6462 
							
						 
						
							2003-05-31 06:26:06 +00:00  
				
					
						
							
							
								 
						
							
								23937091f0 
								
							 
						 
						
							
							
								
								The 'rd' register is consistently mentioned last in instruction definitions.  
							
							... 
							
							
							
							Created new classes from which instructions inherit their ordering of fields.
llvm-svn: 6461 
							
						 
						
							2003-05-31 06:25:19 +00:00  
				
					
						
							
							
								 
						
							
								c4f029f8ba 
								
							 
						 
						
							
							
								
								* Put back into action SLL/SRL/SRA{r,i}6 instructions  
							
							... 
							
							
							
							* Fixed page numbers referring to the Sparc manual
llvm-svn: 6460 
							
						 
						
							2003-05-31 06:24:29 +00:00  
				
					
						
							
							
								 
						
							
								8d5316769f 
								
							 
						 
						
							
							
								
								Code beautification, no functional changes.  
							
							... 
							
							
							
							llvm-svn: 6459 
							
						 
						
							2003-05-31 06:22:37 +00:00  
				
					
						
							
							
								 
						
							
								0b3a70c25b 
								
							 
						 
						
							
							
								
								Enabling some of these passes causes lli to break  
							
							... 
							
							
							
							llvm-svn: 6457 
							
						 
						
							2003-05-31 04:23:04 +00:00  
				
					
						
							
							
								 
						
							
								87cbd97710 
								
							 
						 
						
							
							
								
								The actual order of parameters in a 2-reg-immediate assembly instructions is  
							
							... 
							
							
							
							"rs1, imm, rd": most importantly, rd goes last.
llvm-svn: 6456 
							
						 
						
							2003-05-31 04:22:26 +00:00  
				
					
						
							
							
								 
						
							
								5bf351c880 
								
							 
						 
						
							
							
								
								Added:  
							
							... 
							
							
							
							* ability to save BasicBlock references to be resolved later
* register remappings from the enum values to the real hardware numbers
llvm-svn: 6449 
							
						 
						
							2003-05-30 20:17:33 +00:00  
				
					
						
							
							
								 
						
							
								0757de607a 
								
							 
						 
						
							
							
								
								Fixed the namespace to match SparcInternals.h; added notes on some missing  
							
							... 
							
							
							
							sections of instructions.
llvm-svn: 6448 
							
						 
						
							2003-05-30 20:15:59 +00:00  
				
					
						
							
							
								 
						
							
								8747377292 
								
							 
						 
						
							
							
								
								The register types need to be visible outside of the class to be useful.  
							
							... 
							
							
							
							For one, converting register numbers based on class in the code emitter.
llvm-svn: 6447 
							
						 
						
							2003-05-30 20:12:42 +00:00  
				
					
						
							
							
								 
						
							
								a853af587a 
								
							 
						 
						
							
							
								
								Moved and expanded convertOpcodeFromRegToImm() to conver more opcodes.  
							
							... 
							
							
							
							Code beautification for the rest of the code: changed layout to match the rest
of the code base.
llvm-svn: 6446 
							
						 
						
							2003-05-30 20:11:56 +00:00  
				
					
						
							
							
								 
						
							
								c1830a472a 
								
							 
						 
						
							
							
								
								Make LLI behave just like LLC with regard to the compile passes it uses.  
							
							... 
							
							
							
							llvm-svn: 6444 
							
						 
						
							2003-05-30 20:00:13 +00:00  
				
					
						
							
							
								 
						
							
								39dfa6a920 
								
							 
						 
						
							
							
								
								Made the register and immediate versions of instructions consecutive.  
							
							... 
							
							
							
							llvm-svn: 6439 
							
						 
						
							2003-05-30 19:14:01 +00:00  
				
					
						
							
							
								 
						
							
								f6e4dce74c 
								
							 
						 
						
							
							
								
								Because the format of the shift instructions is `shift r, shcnt, r', the  
							
							... 
							
							
							
							instructions of format 3.12 and 3.13 cannot inherit from F3rdrs1, because that
implies that the two registers are the first two parameters to the instruction.
Thus I made the instructions inherit from F3rd again, and manually added an rs1
field AFTER the shcnt field in the instruction, which maps to the appropriate
place in the instruction.
The other changes are just elimination of unnecessary spaces.
llvm-svn: 6437 
							
						 
						
							2003-05-30 18:06:10 +00:00  
				
					
						
							
							
								 
						
							
								d380f29377 
								
							 
						 
						
							
							
								
								Makefile: Make SparcV9CodeEmitter.inc depend on SparcV9_F*.td as well.  
							
							... 
							
							
							
							SparcV9_F3.td: F3_12 and F3_13 instructions have rd and rs1 fields. Also,
 their fields were totally screwed up. This seems to fix the problem.
llvm-svn: 6429 
							
						 
						
							2003-05-30 08:02:14 +00:00  
				
					
						
							
							
								 
						
							
								6ada87e6eb 
								
							 
						 
						
							
							
								
								Since there is now another derived .inc file, ignore them all.  
							
							... 
							
							
							
							llvm-svn: 6411 
							
						 
						
							2003-05-29 20:15:27 +00:00  
				
					
						
							
							
								 
						
							
								9175a5de53 
								
							 
						 
						
							
							
								
								Use an absolute path to TableGen because not everyone (e.g. automatic tester)  
							
							... 
							
							
							
							has their path set up by this point.
llvm-svn: 6410 
							
						 
						
							2003-05-29 20:09:56 +00:00  
				
					
						
							
							
								 
						
							
								35d5512f34 
								
							 
						 
						
							
							
								
								When TableGen finds an error in the SparcV9.td file, it exits with a non-zero  
							
							... 
							
							
							
							exit code. This, in turn, makes an empty file SparcV9CodeEmitter.inc, and only
much later, produces a link error because the key function that TableGen creates
isn't found.
Using a temporary file in the middle forces a good .INC file to be generated by
TableGen, and it will keep trying until you fix the input file.
llvm-svn: 6392 
							
						 
						
							2003-05-29 05:29:22 +00:00  
				
					
						
							
							
								 
						
							
								794c8a1334 
								
							 
						 
						
							
							
								
								Fixed to use the correct format of the instruction.  
							
							... 
							
							
							
							llvm-svn: 6390 
							
						 
						
							2003-05-29 04:53:56 +00:00  
				
					
						
							
							
								 
						
							
								376dac2eed 
								
							 
						 
						
							
							
								
								This should work better with re-generating the SparcV9CodeEmitter.inc file.  
							
							... 
							
							
							
							Also, added a rule to delete the generated .inc file on `make clean'.
llvm-svn: 6389 
							
						 
						
							2003-05-29 03:32:49 +00:00  
				
					
						
							
							
								 
						
							
								ea4f498395 
								
							 
						 
						
							
							
								
								* Broke up SparcV9.td into separate files as it was getting unmanageable  
							
							... 
							
							
							
							* Added some Format 4 classes, but not instructions
* Added notes on missing sections with FIXMEs
* Added RDCCR instr
llvm-svn: 6388 
							
						 
						
							2003-05-29 03:31:43 +00:00  
				
					
						
							
							
								 
						
							
								fded35952a 
								
							 
						 
						
							
							
								
								Fixed ordering of elements in instructions: although the binary instructions  
							
							... 
							
							
							
							list (rd, rs1, imm), in that order (bit-wise), the actual assembly syntax is
instr rd, imm, rs1, and that is how they are constructed in the instruction
selector. This fixes the discrepancy.
Also fixed some comments along the same lines and fixed page numbers referring
to where instructions are described in the Sparc manual.
llvm-svn: 6384 
							
						 
						
							2003-05-28 17:49:29 +00:00  
				
					
						
							
							
								 
						
							
								2c35144ce5 
								
							 
						 
						
							
							
								
								Add dependency to make TableGen rule fire.  
							
							... 
							
							
							
							llvm-svn: 6383 
							
						 
						
							2003-05-28 17:41:09 +00:00  
				
					
						
							
							
								 
						
							
								07b60f8e2e 
								
							 
						 
						
							
							
								
								Fixed an error preventing compilation.  
							
							... 
							
							
							
							llvm-svn: 6381 
							
						 
						
							2003-05-27 22:48:28 +00:00  
				
					
						
							
							
								 
						
							
								481dfdb523 
								
							 
						 
						
							
							
								
								Added the 'r' and 'i' annotations to instructions as their opcode names have  
							
							... 
							
							
							
							changed.
llvm-svn: 6380 
							
						 
						
							2003-05-27 22:44:44 +00:00  
				
					
						
							
							
								 
						
							
								7975661a8e 
								
							 
						 
						
							
							
								
								Keep track of the current BasicBlock being processed so that a referencing  
							
							... 
							
							
							
							MachineInstr can later be patched up correctly.
llvm-svn: 6378 
							
						 
						
							2003-05-27 22:41:44 +00:00  
				
					
						
							
							
								 
						
							
								af96d39c04 
								
							 
						 
						
							
							
								
								Added 'r' and 'i' annotations to instructions as SparcInstr.def has changed.  
							
							... 
							
							
							
							llvm-svn: 6377 
							
						 
						
							2003-05-27 22:40:34 +00:00  
				
					
						
							
							
								 
						
							
								96ce62a105 
								
							 
						 
						
							
							
								
								Added 'r' or 'i' annotations to instructions, as SparcInstr.def has changed.  
							
							... 
							
							
							
							Non-obvious change: since I have changed ST and STD to be STF and STDF to
(a) closer resemble their name (NOT assembly text) in the Sparc manual, and
(b) clearly specify that they they are floating-point opcodes,
I made the same changes in this file.
llvm-svn: 6376 
							
						 
						
							2003-05-27 22:39:01 +00:00  
				
					
						
							
							
								 
						
							
								da83883ef1 
								
							 
						 
						
							
							
								
								Added 'r' or 'i' annotations to instructions, as SparcInstr.def has changed.  
							
							... 
							
							
							
							Here I had to make one non-trivial change: add a function to get a version of
the opcode that takes an immediate, given an opcode that takes all registers.
This is required because sometimes it is not known at construction time which
opcode is used because opcodes are passed around between functions.
llvm-svn: 6375 
							
						 
						
							2003-05-27 22:37:00 +00:00  
				
					
						
							
							
								 
						
							
								8bde6a688c 
								
							 
						 
						
							
							
								
								Added 'r' or 'i' annotations to instructions, as SparcInstr.def has changed.  
							
							... 
							
							
							
							llvm-svn: 6373 
							
						 
						
							2003-05-27 22:35:43 +00:00  
				
					
						
							
							
								 
						
							
								cb801a6884 
								
							 
						 
						
							
							
								
								Added entries for each of the instructions with annotations ('r' or 'i').  
							
							... 
							
							
							
							llvm-svn: 6372 
							
						 
						
							2003-05-27 22:33:39 +00:00  
				
					
						
							
							
								 
						
							
								db69bebc89 
								
							 
						 
						
							
							
								
								One of the first major changes to make the work of JITting easier: adding  
							
							... 
							
							
							
							annotations on instructions to specify which format they are (i.e., do they take
2 registers and 1 immediate or just 3 registers) as that changes their binary
representation and hence, code emission.
This makes instructions more like how X86 defines them to be. Now, writers of
instruction selection must choose the correct opcode based on what instruction
type they are building, which they already know. Thus, the JIT doesn't have to
do the same work by `discovering' which operands an instruction really has.
As this involves lots of small changes to a lot of files in lib/target/Sparc,
I'll commit them individually because otherwise the diffs will be unreadable.
llvm-svn: 6371 
							
						 
						
							2003-05-27 22:32:38 +00:00  
				
					
						
							
							
								 
						
							
								8110439ff6 
								
							 
						 
						
							
							
								
								* Allow passing in an unsigned configuration to allocateSparcTargetMachine()  
							
							... 
							
							
							
							a default value is set in the header file.
* Fixed some code layout to make it more consistent with the rest of codebase
* Added addPassesToJITCompile() with relevant passes
llvm-svn: 6369 
							
						 
						
							2003-05-27 22:24:48 +00:00  
				
					
						
							
							
								 
						
							
								8b28140662 
								
							 
						 
						
							
							
								
								Moved generation of the SparcV9CodeEmitter.inc file higher in the Makefile so  
							
							... 
							
							
							
							that Makefile.common would see it.
llvm-svn: 6367 
							
						 
						
							2003-05-27 22:04:38 +00:00  
				
					
						
							
							
								 
						
							
								5641434438 
								
							 
						 
						
							
							
								
								Add prototypes to add passes to JIT compilation and code emission.  
							
							... 
							
							
							
							Also, added annotations to how instructions are modified (reg/imm operands).
Added prototype for adding register numbers to values pass for interfacing with
the target-independent register allocators in the JIT.
llvm-svn: 6366 
							
						 
						
							2003-05-27 22:01:10 +00:00  
				
					
						
							
							
								 
						
							
								e195b7c0fc 
								
							 
						 
						
							
							
								
								Broke out class definition from SparcV9CodeEmitter, and added ability to take a  
							
							... 
							
							
							
							MachineCodeEmitter to make a pass-through debugger -- output to memory and to
std::cerr.
llvm-svn: 6363 
							
						 
						
							2003-05-27 21:45:05 +00:00  
				
					
						
							
							
								 
						
							
								3e9272fb29 
								
							 
						 
						
							
							
								
								SparcV9CodeEmitter.cpp is a part of the Sparc code emitter. The main function  
							
							... 
							
							
							
							that assembles instructions is generated via TableGen (and hence must be built
before building this directory, but that's already the case in the top-level
Makefile).
Also added is .cvsignore to ignore the generated file `SparcV9CodeEmitter.inc',
which is included by SparcV9CodeEmitter.cpp .
llvm-svn: 6357 
							
						 
						
							2003-05-27 20:07:58 +00:00  
				
					
						
							
							
								 
						
							
								d452b60678 
								
							 
						 
						
							
							
								
								Added definitions for a bunch of floating-point instructions.  
							
							... 
							
							
							
							llvm-svn: 6356 
							
						 
						
							2003-05-27 20:03:29 +00:00  
				
					
						
							
							
								 
						
							
								8adb9944aa 
								
							 
						 
						
							
							
								
								Added special register class containing (for now) %fsr.  
							
							... 
							
							
							
							Fixed spilling of %fcc[0-3] which are part of %fsr.
Moved some machine-independent reg-class code to class TargetRegInfo
from SparcReg{Class,}Info.
llvm-svn: 6339 
							
						 
						
							2003-05-27 00:02:22 +00:00  
				
					
						
							
							
								 
						
							
								3ee4e2a3c1 
								
							 
						 
						
							
							
								
								Bug fix: right shift for int divide-by-power-of-2 was incorrect for  
							
							... 
							
							
							
							negative values.  Need to add one to a negative value before right shift!
llvm-svn: 6334 
							
						 
						
							2003-05-25 21:59:47 +00:00  
				
					
						
							
							
								 
						
							
								5f36d741db 
								
							 
						 
						
							
							
								
								Bug fix: padding bytes within a structure should go after each field!  
							
							... 
							
							
							
							llvm-svn: 6333 
							
						 
						
							2003-05-25 21:59:09 +00:00  
				
					
						
							
							
								 
						
							
								5b941461b1 
								
							 
						 
						
							
							
								
								Bug fix: sign-extension was not happening for C = -MININT since C == -C!  
							
							... 
							
							
							
							llvm-svn: 6332 
							
						 
						
							2003-05-25 21:58:11 +00:00  
				
					
						
							
							
								 
						
							
								c9a0a1d728 
								
							 
						 
						
							
							
								
								Add support for compiling varargs functions.  
							
							... 
							
							
							
							llvm-svn: 6325 
							
						 
						
							2003-05-25 15:59:47 +00:00  
				
					
						
							
							
								 
						
							
								e2402c65d0 
								
							 
						 
						
							
							
								
								Reword to remove reference to how things worked in the past.  
							
							... 
							
							
							
							llvm-svn: 6323 
							
						 
						
							2003-05-24 01:08:43 +00:00  
				
					
						
							
							
								 
						
							
								d21a02ad58 
								
							 
						 
						
							
							
								
								Implement the TargetInstrInfo's createNOPinstr() and isNOPinstr() interface.  
							
							... 
							
							
							
							llvm-svn: 6320 
							
						 
						
							2003-05-24 00:09:50 +00:00  
				
					
						
							
							
								 
						
							
								39968bbc46 
								
							 
						 
						
							
							
								
								Cleaned up code layout; no functional changes.  
							
							... 
							
							
							
							llvm-svn: 6312 
							
						 
						
							2003-05-23 19:20:57 +00:00  
				
					
						
							
							
								 
						
							
								c42dc745db 
								
							 
						 
						
							
							
								
								Fixed `volatile' typo.  
							
							... 
							
							
							
							llvm-svn: 6266 
							
						 
						
							2003-05-21 19:34:28 +00:00  
				
					
						
							
							
								 
						
							
								f865cc44ab 
								
							 
						 
						
							
							
								
								Cleaned up code layout, spacing, etc. for readability purposes and to be more  
							
							... 
							
							
							
							consistent with the style of LLVM's code base (and itself! it's inconsistent in
some places.)
No functional changes were made.
llvm-svn: 6265 
							
						 
						
							2003-05-21 18:48:06 +00:00  
				
					
						
							
							
								 
						
							
								2a651d7a0e 
								
							 
						 
						
							
							
								
								Cleaned up code layout, spacing, etc. for readability purposes and to be more  
							
							... 
							
							
							
							consistent with the style of LLVM's code base (and itself! it's inconsistent in
some places.)
No functional changes were made.
llvm-svn: 6262 
							
						 
						
							2003-05-21 18:05:35 +00:00  
				
					
						
							
							
								 
						
							
								352f7ac072 
								
							 
						 
						
							
							
								
								Namespacified `vector' and `cerr' to always use the `std::' namespace.  
							
							... 
							
							
							
							Eliminated `using' directives.
llvm-svn: 6261 
							
						 
						
							2003-05-21 17:59:06 +00:00  
				
					
						
							
							
								 
						
							
								56f4fa10fd 
								
							 
						 
						
							
							
								
								Sparc instruction opcodes now all live under the `V9' namespace.  
							
							... 
							
							
							
							llvm-svn: 6249 
							
						 
						
							2003-05-20 20:32:24 +00:00  
				
					
						
							
							
								 
						
							
								b1eee00034 
								
							 
						 
						
							
							
								
								Remove wierd printout  
							
							... 
							
							
							
							llvm-svn: 6145 
							
						 
						
							2003-05-12 20:10:12 +00:00  
				
					
						
							
							
								 
						
							
								25e907dae4 
								
							 
						 
						
							
							
								
								Added the initial version of the TableGen description for the Sparc backend.  
							
							... 
							
							
							
							llvm-svn: 6021 
							
						 
						
							2003-05-07 21:52:39 +00:00  
				
					
						
							
							
								 
						
							
								3ed86610cd 
								
							 
						 
						
							
							
								
								Eliminate use of NonCopyable so that doxygen documentation doesn't link  
							
							... 
							
							
							
							the Annotation classes with the noncopyable classes for no reason
llvm-svn: 5973 
							
						 
						
							2003-05-01 20:28:45 +00:00  
				
					
						
							
							
								 
						
							
								4f6cdbdf81 
								
							 
						 
						
							
							
								
								Remove two fields from TargetData which are target specific.  
							
							... 
							
							
							
							llvm-svn: 5963 
							
						 
						
							2003-04-26 20:11:09 +00:00  
				
					
						
							
							
								 
						
							
								21d4509d76 
								
							 
						 
						
							
							
								
								IntegerRegSize is always 8 for sparc  
							
							... 
							
							
							
							llvm-svn: 5961 
							
						 
						
							2003-04-26 19:44:35 +00:00  
				
					
						
							
							
								 
						
							
								efbae9cff1 
								
							 
						 
						
							
							
								
								Fix obvious type-o  
							
							... 
							
							
							
							llvm-svn: 5932 
							
						 
						
							2003-04-25 05:23:10 +00:00  
				
					
						
							
							
								 
						
							
								13cafd041a 
								
							 
						 
						
							
							
								
								Trivial cleanup  
							
							... 
							
							
							
							llvm-svn: 5899 
							
						 
						
							2003-04-24 18:35:51 +00:00  
				
					
						
							
							
								 
						
							
								524608ab79 
								
							 
						 
						
							
							
								
								Add support for the Switch instruction by running the lowerSwitch pass first  
							
							... 
							
							
							
							llvm-svn: 5867 
							
						 
						
							2003-04-23 16:24:55 +00:00  
				
					
						
							
							
								 
						
							
								379a8d2d1c 
								
							 
						 
						
							
							
								
								Add new linkage types to support a real frontend  
							
							... 
							
							
							
							llvm-svn: 5786 
							
						 
						
							2003-04-16 20:28:45 +00:00  
				
					
						
							
							
								 
						
							
								dea36ca100 
								
							 
						 
						
							
							
								
								Move sparc specific code into the Sparc backend  
							
							... 
							
							
							
							llvm-svn: 5317 
							
						 
						
							2003-01-15 21:36:50 +00:00  
				
					
						
							
							
								 
						
							
								4f596d7a2c 
								
							 
						 
						
							
							
								
								Fix warnings  
							
							... 
							
							
							
							llvm-svn: 5316 
							
						 
						
							2003-01-15 21:36:30 +00:00  
				
					
						
							
							
								 
						
							
								f9fd59148c 
								
							 
						 
						
							
							
								
								Adjust to simpler interfaces  
							
							... 
							
							
							
							Eliminate dependency on RegClass.h
llvm-svn: 5315 
							
						 
						
							2003-01-15 21:14:32 +00:00  
				
					
						
							
							
								 
						
							
								a23969b669 
								
							 
						 
						
							
							
								
								#include RegClass.h explicitly  
							
							... 
							
							
							
							llvm-svn: 5307 
							
						 
						
							2003-01-15 19:57:07 +00:00  
				
					
						
							
							
								 
						
							
								90fc665489 
								
							 
						 
						
							
							
								
								Move private header to private directory  
							
							... 
							
							
							
							llvm-svn: 5305 
							
						 
						
							2003-01-15 19:50:44 +00:00  
				
					
						
							
							
								 
						
							
								d840ccd2e0 
								
							 
						 
						
							
							
								
								Prune #includes  
							
							... 
							
							
							
							llvm-svn: 5303 
							
						 
						
							2003-01-15 19:48:13 +00:00  
				
					
						
							
							
								 
						
							
								e58cd301cd 
								
							 
						 
						
							
							
								
								Use BuildMI more  
							
							... 
							
							
							
							llvm-svn: 5299 
							
						 
						
							2003-01-15 19:23:34 +00:00  
				
					
						
							
							
								 
						
							
								8145abb99e 
								
							 
						 
						
							
							
								
								Fix bug found by regtests  
							
							... 
							
							
							
							llvm-svn: 5294 
							
						 
						
							2003-01-15 18:11:11 +00:00  
				
					
						
							
							
								 
						
							
								1ebaa90f48 
								
							 
						 
						
							
							
								
								Use BuildMI more, Create*Instruction less  
							
							... 
							
							
							
							llvm-svn: 5291 
							
						 
						
							2003-01-15 17:47:49 +00:00  
				
					
						
							
							
								 
						
							
								71aa7afc27 
								
							 
						 
						
							
							
								
								* Elimiante a bunch of functions from InstrSelectionSupport.h, replacing users  
							
							... 
							
							
							
							of them with BUildMI calls instead.
* Fix def information in instructions generated by prologepilog inserter
llvm-svn: 5287 
							
						 
						
							2003-01-15 00:03:28 +00:00  
				
					
						
							
							
								 
						
							
								24c1d5e551 
								
							 
						 
						
							
							
								
								Rename llvm/Analysis/LiveVar/FunctionLiveVarInfo.h -> llvm/CodeGen/FunctionLiveVarInfo.h  
							
							... 
							
							
							
							llvm-svn: 5284 
							
						 
						
							2003-01-14 23:05:08 +00:00  
				
					
						
							
							
								 
						
							
								b4d58d7f9e 
								
							 
						 
						
							
							
								
								Rename MachineInstrInfo -> TargetInstrInfo  
							
							... 
							
							
							
							llvm-svn: 5272 
							
						 
						
							2003-01-14 22:00:31 +00:00  
				
					
						
							
							
								 
						
							
								c49ca9ce58 
								
							 
						 
						
							
							
								
								Minor cleanups  
							
							... 
							
							
							
							llvm-svn: 5266 
							
						 
						
							2003-01-14 20:32:10 +00:00  
				
					
						
							
							
								 
						
							
								f9781b59ab 
								
							 
						 
						
							
							
								
								More renamings of Target/Machine*Info to Target/Target*Info  
							
							... 
							
							
							
							llvm-svn: 5204 
							
						 
						
							2002-12-29 03:13:05 +00:00  
				
					
						
							
							
								 
						
							
								42d59219c7 
								
							 
						 
						
							
							
								
								Rename MachineOptInfo to TargetoptInfo  
							
							... 
							
							
							
							Rename MachineCacheInfo to TargetCacheInfo
llvm-svn: 5203 
							
						 
						
							2002-12-29 02:50:35 +00:00  
				
					
						
							
							
								 
						
							
								83d835da2a 
								
							 
						 
						
							
							
								
								Rename MachineOptInfo to TargetoptInfo  
							
							... 
							
							
							
							Rename MachineCacheInfo to TargetCacheInfo
llvm-svn: 5202 
							
						 
						
							2002-12-29 02:50:33 +00:00  
				
					
						
							
							
								 
						
							
								871e591e34 
								
							 
						 
						
							
							
								
								Rename MachineFrameInfo to TargetFrameInfo.h  
							
							... 
							
							
							
							llvm-svn: 5199 
							
						 
						
							2002-12-28 21:00:25 +00:00  
				
					
						
							
							
								 
						
							
								2ca5e23403 
								
							 
						 
						
							
							
								
								Put class in anonymous namespace  
							
							... 
							
							
							
							llvm-svn: 5197 
							
						 
						
							2002-12-28 20:42:56 +00:00  
				
					
						
							
							
								 
						
							
								d47aac9d4b 
								
							 
						 
						
							
							
								
								* Rename machineFrameInfo to targetFrameInfo  
							
							... 
							
							
							
							* Constant pool and frame info is no longer directly in MachineFunction
llvm-svn: 5177 
							
						 
						
							2002-12-28 20:21:29 +00:00  
				
					
						
							
							
								 
						
							
								fe9b705bed 
								
							 
						 
						
							
							
								
								* Rename MachineFrameInfo to TargetFrameInfo  
							
							... 
							
							
							
							* Move some sparc specific code here from Target files
llvm-svn: 5176 
							
						 
						
							2002-12-28 20:20:24 +00:00  
				
					
						
							
							
								 
						
							
								b9feac398f 
								
							 
						 
						
							
							
								
								* TargetData is no longer directly accessable from TM  
							
							... 
							
							
							
							* s/unsigned int/unsigned/
llvm-svn: 5175 
							
						 
						
							2002-12-28 20:19:44 +00:00  
				
					
						
							
							
								 
						
							
								a41b89a829 
								
							 
						 
						
							
							
								
								* TargetData is no longer directly accessable from TargetMachine  
							
							... 
							
							
							
							* Constpool & frame info is no longer directly in MachineFunction
llvm-svn: 5174 
							
						 
						
							2002-12-28 20:18:21 +00:00  
				
					
						
							
							
								 
						
							
								525e3af36c 
								
							 
						 
						
							
							
								
								* Frame & const pool info is no longer directly in MachineFunction  
							
							... 
							
							
							
							llvm-svn: 5173 
							
						 
						
							2002-12-28 20:17:43 +00:00  
				
					
						
							
							
								 
						
							
								d2a67df791 
								
							 
						 
						
							
							
								
								* Changes to be a MachineFunctionPass  
							
							... 
							
							
							
							* Frame information is now stuck in MachineFunctionInfo instead of directly
  in MachineFunction.
* Don't require a TM as an argument to the ctor
llvm-svn: 5172 
							
						 
						
							2002-12-28 20:16:08 +00:00  
				
					
						
							
							
								 
						
							
								4d84d49f75 
								
							 
						 
						
							
							
								
								* Don't access TargetData directly  
							
							... 
							
							
							
							* Changes because frame info is not in MachineFunction directly anymore
llvm-svn: 5171 
							
						 
						
							2002-12-28 20:15:01 +00:00  
				
					
						
							
							
								 
						
							
								ccc2c7e8a7 
								
							 
						 
						
							
							
								
								Sparc is not little endian  
							
							... 
							
							
							
							llvm-svn: 5129 
							
						 
						
							2002-12-24 00:02:38 +00:00  
				
					
						
							
							
								 
						
							
								c6d6d62c8e 
								
							 
						 
						
							
							
								
								Initialize implicit uses/defs fields for sparc backend to empty list  
							
							... 
							
							
							
							llvm-svn: 4876 
							
						 
						
							2002-12-03 05:41:54 +00:00  
				
					
						
							
							
								 
						
							
								5961102d31 
								
							 
						 
						
							
							
								
								Fix misleading indentation  
							
							... 
							
							
							
							llvm-svn: 4730 
							
						 
						
							2002-11-17 22:57:23 +00:00  
				
					
						
							
							
								 
						
							
								a281003e5e 
								
							 
						 
						
							
							
								
								Remove a nasty little semi-colon someone introduced which  
							
							... 
							
							
							
							prevented any machine instrs from being printed!
llvm-svn: 4557 
							
						 
						
							2002-11-06 00:34:26 +00:00  
				
					
						
							
							
								 
						
							
								8cdd50d177 
								
							 
						 
						
							
							
								
								Reassociate pass now works  
							
							... 
							
							
							
							llvm-svn: 4473 
							
						 
						
							2002-10-31 17:16:18 +00:00  
				
					
						
							
							
								 
						
							
								9f205ddfdd 
								
							 
						 
						
							
							
								
								In getID(), don't call getValidSymbolName to mangle external names!  
							
							... 
							
							
							
							llvm-svn: 4451 
							
						 
						
							2002-10-30 20:16:38 +00:00  
				
					
						
							
							
								 
						
							
								c1d7563566 
								
							 
						 
						
							
							
								
								Sparc backend doesn't use target specific flags yet  
							
							... 
							
							
							
							llvm-svn: 4440 
							
						 
						
							2002-10-30 01:07:12 +00:00  
				
					
						
							
							
								 
						
							
								e2ac271173 
								
							 
						 
						
							
							
								
								These are no longer virtual methods  
							
							... 
							
							
							
							llvm-svn: 4420 
							
						 
						
							2002-10-29 22:01:44 +00:00  
				
					
						
							
							
								 
						
							
								b848956370 
								
							 
						 
						
							
							
								
								* Privatize the TargetName  
							
							... 
							
							
							
							* Move optSizeForSubWordData to TargetData
* Remove unused fields
llvm-svn: 4417 
							
						 
						
							2002-10-29 21:48:17 +00:00  
				
					
						
							
							
								 
						
							
								5667f0eefd 
								
							 
						 
						
							
							
								
								Allow TargetMachine to refuse static code gen  
							
							... 
							
							
							
							llvm-svn: 4415 
							
						 
						
							2002-10-29 21:12:46 +00:00  
				
					
						
							
							
								 
						
							
								69127c68ed 
								
							 
						 
						
							
							
								
								Remove unneccesary #includes  
							
							... 
							
							
							
							llvm-svn: 4408 
							
						 
						
							2002-10-29 20:47:46 +00:00  
				
					
						
							
							
								 
						
							
								71b6d491db 
								
							 
						 
						
							
							
								
								Rename Sparc.h to TargetMachineImpls.h  
							
							... 
							
							
							
							llvm-svn: 4407 
							
						 
						
							2002-10-29 20:47:26 +00:00  
				
					
						
							
							
								 
						
							
								ea0d174f1a 
								
							 
						 
						
							
							
								
								Bug fix: align size for dynamic allocas according to stack pointer  
							
							... 
							
							
							
							alignment restrictions.  This is incomplete for one case.
llvm-svn: 4397 
							
						 
						
							2002-10-29 19:37:31 +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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								fb34004733 
								
							 
						 
						
							
							
								
								change ++ to +1 when using random access iterators  
							
							... 
							
							
							
							llvm-svn: 4292 
							
						 
						
							2002-10-27 19:09:51 +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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								ca15c99c4d 
								
							 
						 
						
							
							
								
								Initial version: it adds 2 empty slots at the top of stack  
							
							... 
							
							
							
							llvm-svn: 3872 
							
						 
						
							2002-09-21 04:58:26 +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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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  
				
					
						
							
							
								 
						
							
								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