c0bb959591 
								
							 
						 
						
							
							
								
								Fix FastISel's assumption that i1 values are always zero-extended  
							
							... 
							
							
							
							by inserting explicit zero extensions where necessary. Included
is a testcase where SelectionDAG produces a virtual register
holding an i1 value which FastISel previously mistakenly assumed
to be zero-extended.
llvm-svn: 66941 
							
						 
						
							2009-03-13 20:42:20 +00:00  
				
					
						
							
							
								 
						
							
								fa54bc2052 
								
							 
						 
						
							
							
								
								Oops...I committed too much.  
							
							... 
							
							
							
							llvm-svn: 66867 
							
						 
						
							2009-03-13 04:39:26 +00:00  
				
					
						
							
							
								 
						
							
								b02eadf660 
								
							 
						 
						
							
							
								
								Temporarily XFAIL this test.  
							
							... 
							
							
							
							llvm-svn: 66866 
							
						 
						
							2009-03-13 04:37:11 +00:00  
				
					
						
							
							
								 
						
							
								c6869f4695 
								
							 
						 
						
							
							
								
								Pass in a std::string when getting the names of debugging things. This cuts down  
							
							... 
							
							
							
							on the number of times a std::string is created and copied.
llvm-svn: 66396 
							
						 
						
							2009-03-09 05:04:40 +00:00  
				
					
						
							
							
								 
						
							
								86673f2806 
								
							 
						 
						
							
							
								
								Clean up dwarf writer, part 1. This eliminated the horrible recursive getGlobalVariablesUsing and replaced it something readable. It eliminated use of slow UniqueVector and replaced it with StringMap, SmallVector, and DenseMap, etc. It also fixed some non-deterministic behavior.  
							
							... 
							
							
							
							This is a very minor compile time win.
llvm-svn: 65438 
							
						 
						
							2009-02-25 07:04:34 +00:00  
				
					
						
							
							
								 
						
							
								c5437ea429 
								
							 
						 
						
							
							
								
								Overhaul my earlier submission due to feedback. It's a large patch, but most of  
							
							... 
							
							
							
							them are generic changes.
- Use the "fast" flag that's already being passed into the asm printers instead
  of shoving it into the DwarfWriter.
- Instead of calling "MI->getParent()->getParent()" for every MI, set the
  machine function when calling "runOnMachineFunction" in the asm printers.
llvm-svn: 65379 
							
						 
						
							2009-02-24 08:30:20 +00:00  
				
					
						
							
							
								 
						
							
								786c5973f7 
								
							 
						 
						
							
							
								
								- Use the "Fast" flag instead of "OptimizeForSize" to determine whether to emit  
							
							... 
							
							
							
							a DBG_LABEL or not. We want to fall back to the original way of emitting debug
  info when we're in -O0/-fast mode.
- Add plumbing in to pass the "Fast" flag to places that need it.
- XFAIL DebugInfo/deaddebuglabel.ll. This is finding 11 labels instead of 8. I
  need to investigate still.
llvm-svn: 65367 
							
						 
						
							2009-02-24 02:35:30 +00:00  
				
					
						
							
							
								 
						
							
								65c0fd4c44 
								
							 
						 
						
							
							
								
								Revert this. It was breaking stuff.  
							
							... 
							
							
							
							llvm-svn: 64428 
							
						 
						
							2009-02-13 02:16:35 +00:00  
				
					
						
							
							
								 
						
							
								1c21ac3066 
								
							 
						 
						
							
							
								
								Turn off the old way of handling debug information in the code generator. Use  
							
							... 
							
							
							
							the new way, where all of the information is passed on SDNodes and machine
instructions.
llvm-svn: 64427 
							
						 
						
							2009-02-13 02:01:04 +00:00  
				
					
						
							
							
								 
						
							
								90880e2598 
								
							 
						 
						
							
							
								
								make fast isel fall back to selectiondags for VLA llvm.declare intrinsics.  
							
							... 
							
							
							
							llvm-svn: 64379 
							
						 
						
							2009-02-12 17:23:20 +00:00  
				
					
						
							
							
								 
						
							
								e3c78361d3 
								
							 
						 
						
							
							
								
								Create DebugLoc information in FastISel. Several temporary methods were  
							
							... 
							
							
							
							created. Specifically, those BuildMIs which use
"DebugLoc::getUnknownLoc()". I'll remove them soon.
llvm-svn: 63584 
							
						 
						
							2009-02-03 00:55:04 +00:00  
				
					
						
							
							
								 
						
							
								4a0bf66eb8 
								
							 
						 
						
							
							
								
								Eliminate a couple of fields from TargetRegisterClass: SubRegClasses and SuperRegClasses. These are not necessary. Also eliminate getSubRegisterRegClass and getSuperRegisterRegClass. These are slow and their results can change if register file names change. Just use TargetLowering::getRegClassFor() to get the right TargetRegisterClass instead.  
							
							... 
							
							
							
							llvm-svn: 62762 
							
						 
						
							2009-01-22 09:10:11 +00:00  
				
					
						
							
							
								 
						
							
								44afc82ebe 
								
							 
						 
						
							
							
								
								Verify debug info.  
							
							... 
							
							
							
							llvm-svn: 62545 
							
						 
						
							2009-01-19 23:21:49 +00:00  
				
					
						
							
							
								 
						
							
								76d190cf4a 
								
							 
						 
						
							
							
								
								Validate dbg_* intrinsics before lowering them.  
							
							... 
							
							
							
							llvm-svn: 62286 
							
						 
						
							2009-01-15 23:41:32 +00:00  
				
					
						
							
							
								 
						
							
								5c6e1e3b7d 
								
							 
						 
						
							
							
								
								Use DebugInfo interface to lower dbg_* intrinsics.  
							
							... 
							
							
							
							llvm-svn: 62127 
							
						 
						
							2009-01-13 00:35:13 +00:00  
				
					
						
							
							
								 
						
							
								dc020f9c3c 
								
							 
						 
						
							
							
								
								Rename getABITypeSize to getTypePaddedSize, as  
							
							... 
							
							
							
							suggested by Chris.
llvm-svn: 62099 
							
						 
						
							2009-01-12 20:38:59 +00:00  
				
					
						
							
							
								 
						
							
								4c31524bec 
								
							 
						 
						
							
							
								
								Factor out the code for sign-extending/truncating gep indices  
							
							... 
							
							
							
							and use it in x86 address mode folding. Also, make
getRegForValue return 0 for illegal types even if it has a
ValueMap for them, because Argument values are put in the
ValueMap. This fixes PR3181.
llvm-svn: 60696 
							
						 
						
							2008-12-08 07:57:47 +00:00  
				
					
						
							
							
								 
						
							
								a8fd1f2c8e 
								
							 
						 
						
							
							
								
								Eliminate some unused variable compile time warnings.  
							
							... 
							
							
							
							llvm-svn: 59952 
							
						 
						
							2008-11-24 07:09:49 +00:00  
				
					
						
							
							
								 
						
							
								8af0a362f1 
								
							 
						 
						
							
							
								
								Emit label for llvm.dbg.func.start of the inlined function.  
							
							... 
							
							
							
							llvm-svn: 58814 
							
						 
						
							2008-11-06 21:28:20 +00:00  
				
					
						
							
							
								 
						
							
								e7ced74558 
								
							 
						 
						
							
							
								
								FastISel support for exception-handling constructs.  
							
							... 
							
							
							
							- Move the EH landing-pad code and adjust it so that it works
   with FastISel as well as with SDISel.
 - Add FastISel support for @llvm.eh.exception and
   @llvm.eh.selector.
llvm-svn: 57539 
							
						 
						
							2008-10-14 23:54:11 +00:00  
				
					
						
							
							
								 
						
							
								c52af45304 
								
							 
						 
						
							
							
								
								calls can be supported.  
							
							... 
							
							
							
							llvm-svn: 57428 
							
						 
						
							2008-10-13 01:59:13 +00:00  
				
					
						
							
							
								 
						
							
								4f0bd68cfe 
								
							 
						 
						
							
							
								
								Add a "loses information" return value to APFloat::convert  
							
							... 
							
							
							
							and APFloat::convertToInteger.  Restore return value to
IEEE754.  Adjust all users accordingly.
llvm-svn: 57329 
							
						 
						
							2008-10-09 23:00:39 +00:00  
				
					
						
							
							
								 
						
							
								c1d47c56f9 
								
							 
						 
						
							
							
								
								Avoid emitting redundant materializations of integer constants  
							
							... 
							
							
							
							for things like null pointers, which at this level aren't
different from regular integer constants.
llvm-svn: 57265 
							
						 
						
							2008-10-07 22:03:27 +00:00  
				
					
						
							
							
								 
						
							
								4e072a75cc 
								
							 
						 
						
							
							
								
								Implement fast-isel support for zero-extending from i1.  
							
							... 
							
							
							
							It turns out that this is a fairly common operation,
and it's easy enough to handle.
llvm-svn: 56990 
							
						 
						
							2008-10-03 01:28:47 +00:00  
				
					
						
							
							
								 
						
							
								1ab1d31f7a 
								
							 
						 
						
							
							
								
								Optimize conditional branches in X86FastISel. This replaces  
							
							... 
							
							
							
							sequences like this:
       sete    %al
       testb   %al, %al
       jne     LBB11_1
with this:
       je      LBB11_1
llvm-svn: 56969 
							
						 
						
							2008-10-02 22:15:21 +00:00  
				
					
						
							
							
								 
						
							
								b486350b15 
								
							 
						 
						
							
							
								
								Move the primary fast-isel top-level comments to FastISel.cpp, where  
							
							... 
							
							
							
							they'll be a little more visible. Also, update and reword them a bit.
llvm-svn: 56877 
							
						 
						
							2008-09-30 20:48:29 +00:00  
				
					
						
							
							
								 
						
							
								5e490a7567 
								
							 
						 
						
							
							
								
								Support for i1 XOR in FastISel. It is actually safe because  
							
							... 
							
							
							
							i1 operands are assumed to already by zero-extended.
llvm-svn: 56615 
							
						 
						
							2008-09-25 17:22:52 +00:00  
				
					
						
							
							
								 
						
							
								32a733e2c7 
								
							 
						 
						
							
							
								
								FastISel support for debug info.  
							
							... 
							
							
							
							llvm-svn: 56610 
							
						 
						
							2008-09-25 17:05:24 +00:00  
				
					
						
							
							
								 
						
							
								3663f156f7 
								
							 
						 
						
							
							
								
								Fix a recent fast-isel coverage regression - don't bail out before  
							
							... 
							
							
							
							giving the target a chance to materialize constants.
llvm-svn: 56605 
							
						 
						
							2008-09-25 01:28:51 +00:00  
				
					
						
							
							
								 
						
							
								918fe08a56 
								
							 
						 
						
							
							
								
								Arrange for FastISel code to have access to the MachineModuleInfo  
							
							... 
							
							
							
							object. This will be needed to support debug info.
llvm-svn: 56508 
							
						 
						
							2008-09-23 21:53:34 +00:00  
				
					
						
							
							
								 
						
							
								9801ba451a 
								
							 
						 
						
							
							
								
								Refactor X86SelectConstAddr, folding it into X86SelectAddress. This  
							
							... 
							
							
							
							results in better code for globals. Also, unbreak the local CSE for
GlobalValue stub loads.
llvm-svn: 56371 
							
						 
						
							2008-09-19 22:16:54 +00:00  
				
					
						
							
							
								 
						
							
								940bafb687 
								
							 
						 
						
							
							
								
								FastISel support for i1 constants.  
							
							... 
							
							
							
							llvm-svn: 56068 
							
						 
						
							2008-09-10 21:01:08 +00:00  
				
					
						
							
							
								 
						
							
								39d82f902a 
								
							 
						 
						
							
							
								
								Add X86FastISel support for static allocas, and refences  
							
							... 
							
							
							
							to static allocas. As part of this change, refactor the
address mode code for laods and stores.
llvm-svn: 56066 
							
						 
						
							2008-09-10 20:11:02 +00:00  
				
					
						
							
							
								 
						
							
								4a58bd331b 
								
							 
						 
						
							
							
								
								Clean this up, based on Evan's suggestions.  
							
							... 
							
							
							
							llvm-svn: 56009 
							
						 
						
							2008-09-09 20:47:17 +00:00  
				
					
						
							
							
								 
						
							
								8529085f4f 
								
							 
						 
						
							
							
								
								Check for type legality before materializing integer constants in fast isel.  With this change,  
							
							... 
							
							
							
							all of MultiSource/Applications passes on Darwin/X86 under FastISel.
llvm-svn: 55982 
							
						 
						
							2008-09-09 06:32:02 +00:00  
				
					
						
							
							
								 
						
							
								1e97901388 
								
							 
						 
						
							
							
								
								Fix a constant lowering bug. Now we can do load and store instructions with funky getelementptr embedded in the address operand.  
							
							... 
							
							
							
							llvm-svn: 55975 
							
						 
						
							2008-09-09 01:26:59 +00:00  
				
					
						
							
							
								 
						
							
								e775d3526c 
								
							 
						 
						
							
							
								
								Add fast isel physical register definition support.  
							
							... 
							
							
							
							llvm-svn: 55892 
							
						 
						
							2008-09-08 08:38:20 +00:00  
				
					
						
							
							
								 
						
							
								b9a0abb129 
								
							 
						 
						
							
							
								
								Indentation.  
							
							... 
							
							
							
							llvm-svn: 55880 
							
						 
						
							2008-09-07 09:04:52 +00:00  
				
					
						
							
							
								 
						
							
								1dd2e40521 
								
							 
						 
						
							
							
								
								Revert r55859.  This is breaking the build in the abscence of its companion commit.  
							
							... 
							
							
							
							llvm-svn: 55865 
							
						 
						
							2008-09-05 23:36:01 +00:00  
				
					
						
							
							
								 
						
							
								fd634599dc 
								
							 
						 
						
							
							
								
								FastISel support for AND and OR with type i1.  
							
							... 
							
							
							
							llvm-svn: 55846 
							
						 
						
							2008-09-05 18:44:22 +00:00  
				
					
						
							
							
								 
						
							
								fcf545690c 
								
							 
						 
						
							
							
								
								FastISel support for ConstantExprs.  
							
							... 
							
							
							
							llvm-svn: 55843 
							
						 
						
							2008-09-05 18:18:20 +00:00  
				
					
						
							
							
								 
						
							
								ea56bdde34 
								
							 
						 
						
							
							
								
								FastISel support for unreachable.  
							
							... 
							
							
							
							llvm-svn: 55818 
							
						 
						
							2008-09-05 01:08:41 +00:00  
				
					
						
							
							
								 
						
							
								50288e3c99 
								
							 
						 
						
							
							
								
								Add initial support for selecting constant materializations that require constant  
							
							... 
							
							
							
							pool loads on X86 in fast isel.  This isn't actually used yet.
llvm-svn: 55814 
							
						 
						
							2008-09-05 00:06:23 +00:00  
				
					
						
							
							
								 
						
							
								e039d5580e 
								
							 
						 
						
							
							
								
								Do trivial local CSE for constants and other non-Instruction values  
							
							... 
							
							
							
							in FastISel.
llvm-svn: 55748 
							
						 
						
							2008-09-03 23:32:19 +00:00  
				
					
						
							
							
								 
						
							
								7bda51f5a4 
								
							 
						 
						
							
							
								
								Create HandlePHINodesInSuccessorBlocksFast, a version of  
							
							... 
							
							
							
							HandlePHINodesInSuccessorBlocks that works FastISel-style. This
allows PHI nodes to be updated correctly while using FastISel.
This also involves some code reorganization; ValueMap and
MBBMap are now members of the FastISel class, so they needn't
be passed around explicitly anymore. Also, SelectInstructions
is changed to SelectInstruction, and only does one instruction
at a time.
llvm-svn: 55746 
							
						 
						
							2008-09-03 23:12:08 +00:00  
				
					
						
							
							
								 
						
							
								b1b9398ea7 
								
							 
						 
						
							
							
								
								Oops, I accidentally broke the fallback case with my last commit.  
							
							... 
							
							
							
							llvm-svn: 55704 
							
						 
						
							2008-09-03 17:51:57 +00:00  
				
					
						
							
							
								 
						
							
								ea666816c2 
								
							 
						 
						
							
							
								
								Fix an issue where we were reusing materializations of constants in blocks not dominated by the materialization.  This is  
							
							... 
							
							
							
							the simple fix, materializing the constant before every use.  It might be better to either track domination of uses or
to materialize all constants and the beginning of the function and let remat sort when to do materialization at uses.
llvm-svn: 55703 
							
						 
						
							2008-09-03 17:37:03 +00:00  
				
					
						
							
							
								 
						
							
								09ff2e7372 
								
							 
						 
						
							
							
								
								80 col violations.  
							
							... 
							
							
							
							llvm-svn: 55668 
							
						 
						
							2008-09-02 21:59:13 +00:00  
				
					
						
							
							
								 
						
							
								6f0c51d9da 
								
							 
						 
						
							
							
								
								Fix an issue where a use might be selected before a def, and then we didn't respect the pre-chosen vreg  
							
							... 
							
							
							
							assignment when selecting the def.  This is the naive solution to the problem: insert a copy to the pre-chosen
vreg.  Other solutions might be preferable, such as:
  1) Passing the dest reg into FastEmit_.  However, this would require the higher level code to know about reg classes, which they don't currently.
  2) Selecting blocks in reverse postorder.  This has some compile time cost for computing the order, and we'd need to measure its impact.
llvm-svn: 55555 
							
						 
						
							2008-08-30 00:38:46 +00:00  
				
					
						
							
							
								 
						
							
								c45733f194 
								
							 
						 
						
							
							
								
								Implement null and undef values for FastISel.  
							
							... 
							
							
							
							llvm-svn: 55500 
							
						 
						
							2008-08-28 21:19:07 +00:00  
				
					
						
							
							
								 
						
							
								d8a82b75e2 
								
							 
						 
						
							
							
								
								Hook up support for fast-isel of trunc instructions, using the newly working support for EXTRACT_SUBREG.  
							
							... 
							
							
							
							llvm-svn: 55482 
							
						 
						
							2008-08-28 18:26:01 +00:00  
				
					
						
							
							
								 
						
							
								9cd1a5e530 
								
							 
						 
						
							
							
								
								FastEmitInst_extractsubreg doesn't need to be passed the register class.  It can get it from MachineRegisterInfo instead.  
							
							... 
							
							
							
							llvm-svn: 55476 
							
						 
						
							2008-08-28 17:47:37 +00:00  
				
					
						
							
							
								 
						
							
								5f57bc2247 
								
							 
						 
						
							
							
								
								Add a helper method that will be used to support EXTRACT_SUBREG for selecting trunc's in fast-isel.  
							
							... 
							
							
							
							llvm-svn: 55439 
							
						 
						
							2008-08-27 22:30:02 +00:00  
				
					
						
							
							
								 
						
							
								61cfa3095d 
								
							 
						 
						
							
							
								
								Fix FastISel's bitcast code for the case where getRegForValue fails.  
							
							... 
							
							
							
							llvm-svn: 55431 
							
						 
						
							2008-08-27 20:41:38 +00:00  
				
					
						
							
							
								 
						
							
								90609850b2 
								
							 
						 
						
							
							
								
								Use TargetLowering to get the types in fast isel, which handles pointer types correctly for our purposes.  
							
							... 
							
							
							
							llvm-svn: 55428 
							
						 
						
							2008-08-27 18:58:30 +00:00  
				
					
						
							
							
								 
						
							
								d01789be23 
								
							 
						 
						
							
							
								
								Don't check TLI.getOperationAction. The FastISel way is to  
							
							... 
							
							
							
							just try to do the action and let the tablegen-generated code
determine if there is target-support for an operation.
llvm-svn: 55427 
							
						 
						
							2008-08-27 18:15:05 +00:00  
				
					
						
							
							
								 
						
							
								b0b5a27438 
								
							 
						 
						
							
							
								
								Add a new FastISel method, getRegForValue, which takes care of  
							
							... 
							
							
							
							the details of materializing constants and other values into
registers, and make use of it in several places.
llvm-svn: 55426 
							
						 
						
							2008-08-27 18:10:19 +00:00  
				
					
						
							
							
								 
						
							
								f2a6c1579f 
								
							 
						 
						
							
							
								
								Add a comment about the current floating-point constant code in FastISel.  
							
							... 
							
							
							
							llvm-svn: 55425 
							
						 
						
							2008-08-27 18:01:42 +00:00  
				
					
						
							
							
								 
						
							
								5ca269e684 
								
							 
						 
						
							
							
								
								Basic FastISel support for floating-point constants.  
							
							... 
							
							
							
							llvm-svn: 55401 
							
						 
						
							2008-08-27 01:09:54 +00:00  
				
					
						
							
							
								 
						
							
								54aff7bb23 
								
							 
						 
						
							
							
								
								Fix handling of inttoptr and ptrtoint when unhandled operands are present.  
							
							... 
							
							
							
							llvm-svn: 55400 
							
						 
						
							2008-08-27 00:35:37 +00:00  
				
					
						
							
							
								 
						
							
								140549256f 
								
							 
						 
						
							
							
								
								Add support for fast isel of inttoptr and ptrtoint in the cases where truncation is not needed.  
							
							... 
							
							
							
							llvm-svn: 55399 
							
						 
						
							2008-08-27 00:31:01 +00:00  
				
					
						
							
							
								 
						
							
								ca1711a5b5 
								
							 
						 
						
							
							
								
								Factor out a large amoutn of the cast handling code in fast isel into helper methods.  
							
							... 
							
							
							
							This simultaneously makes the code simpler and adds support for sext as well.
llvm-svn: 55398 
							
						 
						
							2008-08-26 23:46:32 +00:00  
				
					
						
							
							
								 
						
							
								343310a715 
								
							 
						 
						
							
							
								
								Add support for fast isel of zext.  
							
							... 
							
							
							
							llvm-svn: 55396 
							
						 
						
							2008-08-26 23:14:49 +00:00  
				
					
						
							
							
								 
						
							
								655c1dc63d 
								
							 
						 
						
							
							
								
								Add support for fptosi of constants in fast isel.  
							
							... 
							
							
							
							llvm-svn: 55393 
							
						 
						
							2008-08-26 22:34:28 +00:00  
				
					
						
							
							
								 
						
							
								6fda9208d9 
								
							 
						 
						
							
							
								
								Refactor the bitcast code into its own function.  
							
							... 
							
							
							
							llvm-svn: 55387 
							
						 
						
							2008-08-26 21:28:54 +00:00  
				
					
						
							
							
								 
						
							
								b5e04bfb18 
								
							 
						 
						
							
							
								
								Make FastISel use the correct argument type when casting GEP indices.  
							
							... 
							
							
							
							llvm-svn: 55384 
							
						 
						
							2008-08-26 20:57:08 +00:00  
				
					
						
							
							
								 
						
							
								3bcbbece19 
								
							 
						 
						
							
							
								
								Don't select binary instructions with illegal types.  
							
							... 
							
							
							
							llvm-svn: 55383 
							
						 
						
							2008-08-26 20:52:40 +00:00  
				
					
						
							
							
								 
						
							
								3c4dc434ee 
								
							 
						 
						
							
							
								
								Add support for fast isel of sitofp, and remove some unnecessary and imprecise legality checks.  
							
							... 
							
							
							
							llvm-svn: 55381 
							
						 
						
							2008-08-26 20:37:00 +00:00  
				
					
						
							
							
								 
						
							
								e0ac9765b2 
								
							 
						 
						
							
							
								
								Use a combination of copyRegToReg and ISD::BIT_CONVERT when doing fast isel of bitcasts,  
							
							... 
							
							
							
							allowing it to support the full range of conversions people might ask for in a correct manner.
llvm-svn: 55378 
							
						 
						
							2008-08-26 18:51:24 +00:00  
				
					
						
							
							
								 
						
							
								27fb3dcbc7 
								
							 
						 
						
							
							
								
								Make TargetInstrInfo::copyRegToReg return a bool indicating whether the copy requested  
							
							... 
							
							
							
							was inserted or not.  This allows bitcast in fast isel to properly handle the case
where an appropriate reg-to-reg copy is not available.
llvm-svn: 55375 
							
						 
						
							2008-08-26 18:03:31 +00:00  
				
					
						
							
							
								 
						
							
								bf05ebaccf 
								
							 
						 
						
							
							
								
								Add support for fast isel of non-constant fptosi instructions.  
							
							... 
							
							
							
							llvm-svn: 55373 
							
						 
						
							2008-08-26 17:44:42 +00:00  
				
					
						
							
							
								 
						
							
								8dd01ccdd8 
								
							 
						 
						
							
							
								
								Add a RetVT parameter to emitted FastISel methods, so that we will be able to pass the desired return  
							
							... 
							
							
							
							type down.  This is not currently used.
llvm-svn: 55345 
							
						 
						
							2008-08-25 23:58:18 +00:00  
				
					
						
							
							
								 
						
							
								2c067325d6 
								
							 
						 
						
							
							
								
								Unbreak build.  
							
							... 
							
							
							
							llvm-svn: 55342 
							
						 
						
							2008-08-25 22:20:39 +00:00  
				
					
						
							
							
								 
						
							
								126afc5cb9 
								
							 
						 
						
							
							
								
								Expand bitcast support in fast isel to support bitcasts of non-constant values by emitting reg-reg copies.  
							
							... 
							
							
							
							llvm-svn: 55340 
							
						 
						
							2008-08-25 21:32:34 +00:00  
				
					
						
							
							
								 
						
							
								32635dbfb2 
								
							 
						 
						
							
							
								
								Add support for fast isel of (integer) immediate materialization pattens, and use them to support  
							
							... 
							
							
							
							bitcast of constants in fast isel.
llvm-svn: 55325 
							
						 
						
							2008-08-25 20:20:32 +00:00  
				
					
						
							
							
								 
						
							
								48a3623591 
								
							 
						 
						
							
							
								
								Make MBBMap a DenseMap instead of a std::map.  
							
							... 
							
							
							
							llvm-svn: 55220 
							
						 
						
							2008-08-23 02:44:46 +00:00  
				
					
						
							
							
								 
						
							
								2db3f8a095 
								
							 
						 
						
							
							
								
								Reapply r55191 and r55192.  
							
							... 
							
							
							
							llvm-svn: 55205 
							
						 
						
							2008-08-22 21:28:19 +00:00  
				
					
						
							
							
								 
						
							
								fc4f64eed0 
								
							 
						 
						
							
							
								
								Reverting r55190, r55191, and r55192. They broke the build with this error message:  
							
							... 
							
							
							
							{standard input}:17:bad register name `%sil'
make[4]: *** [libgcc/./_addvsi3.o] Error 1
make[4]: *** Waiting for unfinished jobs....
{standard input}:23:bad register name `%dil'
{standard input}:28:bad register name `%dil'
make[4]: *** [libgcc/./_addvdi3.o] Error 1
{standard input}:18:bad register name `%sil'
make[4]: *** [libgcc/./_subvsi3.o] Error 1
llvm-svn: 55200 
							
						 
						
							2008-08-22 20:51:05 +00:00  
				
					
						
							
							
								 
						
							
								04968da460 
								
							 
						 
						
							
							
								
								Fix the InsertBranch call.  
							
							... 
							
							
							
							llvm-svn: 55192 
							
						 
						
							2008-08-22 19:26:10 +00:00  
				
					
						
							
							
								 
						
							
								87ff7058e7 
								
							 
						 
						
							
							
								
								Support non-fallthrough unconditional branches in FastISel.  
							
							... 
							
							
							
							llvm-svn: 55191 
							
						 
						
							2008-08-22 19:21:41 +00:00  
				
					
						
							
							
								 
						
							
								a2292c0d34 
								
							 
						 
						
							
							
								
								Add FastISel support for PHINodes. Machine PHI nodes  
							
							... 
							
							
							
							are not yet updated properly, but that's a separate
task.
llvm-svn: 55187 
							
						 
						
							2008-08-22 17:37:48 +00:00  
				
					
						
							
							
								 
						
							
								49e19e906f 
								
							 
						 
						
							
							
								
								Factor out the predicate check code from DAGISelEmitter.cpp  
							
							... 
							
							
							
							and use it in FastISelEmitter.cpp, and make FastISel
subtarget aware. Among other things, this lets it work
properly on x86 targets that don't have SSE, where it
successfully selects x87 instructions.
llvm-svn: 55156 
							
						 
						
							2008-08-22 00:20:26 +00:00  
				
					
						
							
							
								 
						
							
								6a7461ad9b 
								
							 
						 
						
							
							
								
								Have FastISel skip the multiply by 1 for getelementptr on i8*.  
							
							... 
							
							
							
							llvm-svn: 55129 
							
						 
						
							2008-08-21 17:37:05 +00:00  
				
					
						
							
							
								 
						
							
								efb7d2d03d 
								
							 
						 
						
							
							
								
								MVT::getMVT uses iPTR for pointer types, while we need the actual  
							
							... 
							
							
							
							intptr_t type in this case. FastISel can now select simple
getelementptr instructions.
llvm-svn: 55125 
							
						 
						
							2008-08-21 17:25:26 +00:00  
				
					
						
							
							
								 
						
							
								fe9056584b 
								
							 
						 
						
							
							
								
								Basic fast-isel support for instructions with constant int operands.  
							
							... 
							
							
							
							llvm-svn: 55099 
							
						 
						
							2008-08-21 01:41:07 +00:00  
				
					
						
							
							
								 
						
							
								4b5c038cd0 
								
							 
						 
						
							
							
								
								Type of first GEP operand is always the same as the target pointer type.  
							
							... 
							
							
							
							llvm-svn: 55097 
							
						 
						
							2008-08-21 01:19:11 +00:00  
				
					
						
							
							
								 
						
							
								6a0780cdd7 
								
							 
						 
						
							
							
								
								Fix unused variable warnings.  
							
							... 
							
							
							
							llvm-svn: 55089 
							
						 
						
							2008-08-20 23:53:10 +00:00  
				
					
						
							
							
								 
						
							
								864fcc198d 
								
							 
						 
						
							
							
								
								First cut, un-optimized (and untested) fast isel lowering of GetElementPtrInst.  
							
							... 
							
							
							
							llvm-svn: 55085 
							
						 
						
							2008-08-20 22:45:34 +00:00  
				
					
						
							
							
								 
						
							
								a4305cec93 
								
							 
						 
						
							
							
								
								Simplify the BuildMI calls even more.  
							
							... 
							
							
							
							llvm-svn: 55077 
							
						 
						
							2008-08-20 21:10:53 +00:00  
				
					
						
							
							
								 
						
							
								02c84b8910 
								
							 
						 
						
							
							
								
								Simplify FastISel's constructor argument list, make the FastISel  
							
							... 
							
							
							
							class hold a MachineRegisterInfo member, and make the
MachineBasicBlock be passed in to SelectInstructions rather
than the FastISel constructor.
llvm-svn: 55076 
							
						 
						
							2008-08-20 21:05:57 +00:00  
				
					
						
							
							
								 
						
							
								07a34a5f69 
								
							 
						 
						
							
							
								
								Make more use of the BuildMI API.  
							
							... 
							
							
							
							llvm-svn: 55072 
							
						 
						
							2008-08-20 18:16:32 +00:00  
				
					
						
							
							
								 
						
							
								24e8f0cfe6 
								
							 
						 
						
							
							
								
								Minor code reorganization.  
							
							... 
							
							
							
							llvm-svn: 55071 
							
						 
						
							2008-08-20 18:10:48 +00:00  
				
					
						
							
							
								 
						
							
								2471f6ce0f 
								
							 
						 
						
							
							
								
								Minor whitespace cleanup.  
							
							... 
							
							
							
							llvm-svn: 55070 
							
						 
						
							2008-08-20 18:09:38 +00:00  
				
					
						
							
							
								 
						
							
								39a5ffb03f 
								
							 
						 
						
							
							
								
								Fix 80 column violation.  
							
							... 
							
							
							
							llvm-svn: 55069 
							
						 
						
							2008-08-20 18:09:02 +00:00  
				
					
						
							
							
								 
						
							
								e8f9a00424 
								
							 
						 
						
							
							
								
								Fix FastISel to recognize that the last block in the function does  
							
							... 
							
							
							
							not have a fall-through successor.
llvm-svn: 55033 
							
						 
						
							2008-08-20 01:17:01 +00:00  
				
					
						
							
							
								 
						
							
								f6884373c2 
								
							 
						 
						
							
							
								
								Fix FastISel to recognize unhandled operands, such as constants  
							
							... 
							
							
							
							that aren't available as virtual registers (for now).
llvm-svn: 55026 
							
						 
						
							2008-08-20 00:35:17 +00:00  
				
					
						
							
							
								 
						
							
								b16a7783c5 
								
							 
						 
						
							
							
								
								Add FastISel support for floating-point operations.  
							
							... 
							
							
							
							llvm-svn: 55021 
							
						 
						
							2008-08-20 00:23:20 +00:00  
				
					
						
							
							
								 
						
							
								a3e4d5a5e1 
								
							 
						 
						
							
							
								
								Add FastISel support for several more binary operators.  
							
							... 
							
							
							
							llvm-svn: 55020 
							
						 
						
							2008-08-20 00:11:48 +00:00  
				
					
						
							
							
								 
						
							
								214343fbbe 
								
							 
						 
						
							
							
								
								Support unconditional fall-through branches in FastISel.  
							
							... 
							
							
							
							llvm-svn: 55014 
							
						 
						
							2008-08-19 22:31:46 +00:00  
				
					
						
							
							
								 
						
							
								547ce65467 
								
							 
						 
						
							
							
								
								Use the BuildMI overload that sets up a destination register  
							
							... 
							
							
							
							instead of the one that doesn't and then adding it manually.
llvm-svn: 55006 
							
						 
						
							2008-08-19 20:46:54 +00:00  
				
					
						
							
							
								 
						
							
								c55fdcc935 
								
							 
						 
						
							
							
								
								Handle the case where target-specific fastisel code doesn't have  
							
							... 
							
							
							
							a desired opcode.
llvm-svn: 55005 
							
						 
						
							2008-08-19 20:43:22 +00:00  
				
					
						
							
							
								 
						
							
								c44423853a 
								
							 
						 
						
							
							
								
								Make FastISel's constructor protected, and give it a destructor.  
							
							... 
							
							
							
							llvm-svn: 54793 
							
						 
						
							2008-08-14 21:51:29 +00:00  
				
					
						
							
							
								 
						
							
								b2226e21c3 
								
							 
						 
						
							
							
								
								Initial checkin of the new "fast" instruction selection support. See  
							
							... 
							
							
							
							the comments in FastISelEmitter.cpp for details on what this is.
This is currently experimental and unusable.
llvm-svn: 54751 
							
						 
						
							2008-08-13 20:19:35 +00:00