fd967cf3fa 
								
							 
						 
						
							
							
								
								Recommitting EH patch; this should answer most of the  
							
							... 
							
							
							
							review feedback.
-enable-eh is still accepted but doesn't do anything.
EH intrinsics use Dwarf EH if the target supports that,
and are handled by LowerInvoke otherwise.
The separation of the EH table and frame move data is,
I think, logically figured out, but either one still
causes full EH info to be generated (not sure how to
split the metadata correctly).
MachineModuleInfo::needsFrameInfo is no longer used and
is removed.
llvm-svn: 49064 
							
						 
						
							2008-04-02 00:25:04 +00:00  
				
					
						
							
							
								 
						
							
								5e4e051c2a 
								
							 
						 
						
							
							
								
								Revert 49006 for the moment.  
							
							... 
							
							
							
							llvm-svn: 49046 
							
						 
						
							2008-04-01 20:00:57 +00:00  
				
					
						
							
							
								 
						
							
								7d02cf3c9c 
								
							 
						 
						
							
							
								
								Emit exception handling info for functions which are  
							
							... 
							
							
							
							not marked nounwind, or for all functions when -enable-eh
is set, provided the target supports Dwarf EH.
llvm-gcc generates nounwind in the right places; other FEs
will need to do so also.  Given such a FE, -enable-eh should
no longer be needed.
llvm-svn: 49006 
							
						 
						
							2008-03-31 23:40:23 +00:00  
				
					
						
							
							
								 
						
							
								a7ba51f6ec 
								
							 
						 
						
							
							
								
								Avoid outputing spaces at the ends of lines.  
							
							... 
							
							
							
							llvm-svn: 48797 
							
						 
						
							2008-03-25 21:38:12 +00:00  
				
					
						
							
							
								 
						
							
								72cfe84f05 
								
							 
						 
						
							
							
								
								Do not align loops if optimizing for size.  
							
							... 
							
							
							
							llvm-svn: 48794 
							
						 
						
							2008-03-25 21:03:02 +00:00  
				
					
						
							
							
								 
						
							
								24570836b2 
								
							 
						 
						
							
							
								
								Use PassManagerBase instead of FunctionPassManager for functions  
							
							... 
							
							
							
							that merely add passes. This allows them to be used with either
FunctionPassManager or PassManager, or even with a custom new
kind of pass manager.
llvm-svn: 48256 
							
						 
						
							2008-03-11 22:29:46 +00:00  
				
					
						
							
							
								 
						
							
								95a7be473c 
								
							 
						 
						
							
							
								
								Added option -align-loops=<true/false> to disable loop aligner pass.  
							
							... 
							
							
							
							llvm-svn: 47736 
							
						 
						
							2008-02-28 23:29:57 +00:00  
				
					
						
							
							
								 
						
							
								21ad494f67 
								
							 
						 
						
							
							
								
								Enable exception handling int JIT  
							
							... 
							
							
							
							llvm-svn: 47079 
							
						 
						
							2008-02-13 18:39:37 +00:00  
				
					
						
							
							
								 
						
							
								994718417a 
								
							 
						 
						
							
							
								
								don't create the post-ra scheduler unless it is enabled.  
							
							... 
							
							
							
							llvm-svn: 45972 
							
						 
						
							2008-01-14 19:00:06 +00:00  
				
					
						
							
							
								 
						
							
								2d684b1fbf 
								
							 
						 
						
							
							
								
								Ammending r45669 with a missing file.  
							
							... 
							
							
							
							llvm-svn: 45671 
							
						 
						
							2008-01-07 01:33:09 +00:00  
				
					
						
							
							
								 
						
							
								276178e49f 
								
							 
						 
						
							
							
								
								allow sinking to be enabled for the jit  
							
							... 
							
							
							
							llvm-svn: 45624 
							
						 
						
							2008-01-05 06:14:16 +00:00  
				
					
						
							
							
								 
						
							
								66470d02c3 
								
							 
						 
						
							
							
								
								Move option to enable machine LICM into LLVMTargetMachine.cpp.  
							
							... 
							
							
							
							llvm-svn: 45572 
							
						 
						
							2008-01-04 08:11:03 +00:00  
				
					
						
							
							
								 
						
							
								f3edc09f9b 
								
							 
						 
						
							
							
								
								Add a really quick hack at a machine code sinking pass, enabled with --enable-sinking.  
							
							... 
							
							
							
							It is missing validity checks, so it is known broken.  However, it is powerful enough
to compile this contrived code:
void test1(int C, double A, double B, double *P) {
  double Tmp = A*A+B*B;
  *P = C ? Tmp : A;
}
into:
_test1:
	movsd	8(%esp), %xmm0
	cmpl	$0, 4(%esp)
	je	LBB1_2	# entry
LBB1_1:	# entry
	movsd	16(%esp), %xmm1
	mulsd	%xmm1, %xmm1
	mulsd	%xmm0, %xmm0
	addsd	%xmm1, %xmm0
LBB1_2:	# entry
	movl	24(%esp), %eax
	movsd	%xmm0, (%eax)
	ret
instead of:
_test1:
	movsd	16(%esp), %xmm0
	mulsd	%xmm0, %xmm0
	movsd	8(%esp), %xmm1
	movapd	%xmm1, %xmm2
	mulsd	%xmm2, %xmm2
	addsd	%xmm0, %xmm2
	cmpl	$0, 4(%esp)
	je	LBB1_2	# entry
LBB1_1:	# entry
	movapd	%xmm2, %xmm1
LBB1_2:	# entry
	movl	24(%esp), %eax
	movsd	%xmm1, (%eax)
	ret
woo.
llvm-svn: 45570 
							
						 
						
							2008-01-04 07:36:53 +00:00  
				
					
						
							
							
								 
						
							
								f3ebc3f3d2 
								
							 
						 
						
							
							
								
								Remove attribution from file headers, per discussion on llvmdev.  
							
							... 
							
							
							
							llvm-svn: 45418 
							
						 
						
							2007-12-29 20:36:04 +00:00  
				
					
						
							
							
								 
						
							
								fb706bc52b 
								
							 
						 
						
							
							
								
								Initial commit of the machine code LICM pass. It successfully hoists this:  
							
							... 
							
							
							
							_foo:
        li r2, 0
LBB1_1: ; bb
        li r5, 0
        stw r5, 0(r3)
        addi r2, r2, 1
        addi r3, r3, 4
        cmplw cr0, r2, r4
        bne cr0, LBB1_1 ; bb
LBB1_2: ; return
        blr 
to:
_foo:
        li r2, 0
        li r5, 0
LBB1_1: ; bb
        stw r5, 0(r3)
        addi r2, r2, 1
        addi r3, r3, 4
        cmplw cr0, r2, r4
        bne cr0, LBB1_1 ; bb
LBB1_2: ; return
        blr
ZOMG!! :-)
Moar to come...
llvm-svn: 44687 
							
						 
						
							2007-12-07 21:42:31 +00:00  
				
					
						
							
							
								 
						
							
								14bbb15f07 
								
							 
						 
						
							
							
								
								Move subreg lowering pass to be right after regalloc, per feedback.  
							
							... 
							
							
							
							llvm-svn: 40548 
							
						 
						
							2007-07-27 07:36:14 +00:00  
				
					
						
							
							
								 
						
							
								e9d738cefc 
								
							 
						 
						
							
							
								
								Add a MachineFunction pass, which runs post register allocation, that turns subreg insert/extract instruction into register copies. This ensures correct code gen if the coalescer isn't able to remove all subreg instructions.  
							
							... 
							
							
							
							llvm-svn: 40521 
							
						 
						
							2007-07-26 08:18:32 +00:00  
				
					
						
							
							
								 
						
							
								9d5df0a5f6 
								
							 
						 
						
							
							
								
								Added -print-emitted-asm to print out JIT generated asm to cerr.  
							
							... 
							
							
							
							llvm-svn: 40123 
							
						 
						
							2007-07-20 21:56:13 +00:00  
				
					
						
							
							
								 
						
							
								4dc35dbd3e 
								
							 
						 
						
							
							
								
								Modify previous patch per review comments.  
							
							... 
							
							
							
							llvm-svn: 39817 
							
						 
						
							2007-07-13 17:31:29 +00:00  
				
					
						
							
							
								 
						
							
								2182f06f2d 
								
							 
						 
						
							
							
								
								Skeleton of post-RA scheduler; doesn't do anything yet.  
							
							... 
							
							
							
							Change name of -sched option and DEBUG_TYPE to
pre-RA-sched; adjust testcases.
llvm-svn: 39816 
							
						 
						
							2007-07-13 17:13:54 +00:00  
				
					
						
							
							
								 
						
							
								03b274911f 
								
							 
						 
						
							
							
								
								Exception handling has been implemented.  
							
							... 
							
							
							
							llvm-svn: 39732 
							
						 
						
							2007-07-11 16:59:20 +00:00  
				
					
						
							
							
								 
						
							
								37228f6ce5 
								
							 
						 
						
							
							
								
								document and hide two options.  
							
							... 
							
							
							
							llvm-svn: 37651 
							
						 
						
							2007-06-19 05:47:49 +00:00  
				
					
						
							
							
								 
						
							
								f9cbdc676c 
								
							 
						 
						
							
							
								
								name change requested by review of previous patch  
							
							... 
							
							
							
							llvm-svn: 37289 
							
						 
						
							2007-05-22 18:31:04 +00:00  
				
					
						
							
							
								 
						
							
								82810c8a13 
								
							 
						 
						
							
							
								
								Make tail merging the default, except on powerPC.  There was no prior art  
							
							... 
							
							
							
							for a target-dependent default with a command-line override; this way
should be generally usable.
llvm-svn: 37285 
							
						 
						
							2007-05-22 17:14:46 +00:00  
				
					
						
							
							
								 
						
							
								f6a6d3c8b0 
								
							 
						 
						
							
							
								
								move a bunch of code out of the sdisel pass into its own opt pass "codegenprepare".  
							
							... 
							
							
							
							llvm-svn: 35529 
							
						 
						
							2007-03-31 04:18:03 +00:00  
				
					
						
							
							
								 
						
							
								bafc837c83 
								
							 
						 
						
							
							
								
								Add a -print-lsr-output option to LLC, to print the output of the LSR pass.  
							
							... 
							
							
							
							llvm-svn: 35522 
							
						 
						
							2007-03-31 00:24:43 +00:00  
				
					
						
							
							
								 
						
							
								b0743b5d6a 
								
							 
						 
						
							
							
								
								Now LoopStrengthReduce is a LoopPass.  
							
							... 
							
							
							
							llvm-svn: 34984 
							
						 
						
							2007-03-06 21:14:09 +00:00  
				
					
						
							
							
								 
						
							
								69bd45c1d2 
								
							 
						 
						
							
							
								
								Use exception  flag.  
							
							... 
							
							
							
							llvm-svn: 34496 
							
						 
						
							2007-02-22 16:22:15 +00:00  
				
					
						
							
							
								 
						
							
								523048ecde 
								
							 
						 
						
							
							
								
								Split the addPassesToEmitFile method up into two. This is so that we can  
							
							... 
							
							
							
							do some common stuff, then on our own add an object file writer (by calling
a concrete function), and then do some finishing stuff, if need be.
llvm-svn: 34032 
							
						 
						
							2007-02-08 01:36:53 +00:00  
				
					
						
							
							
								 
						
							
								355fc5ad50 
								
							 
						 
						
							
							
								
								Removed more <iostream> includes  
							
							... 
							
							
							
							llvm-svn: 32321 
							
						 
						
							2006-12-07 20:28:15 +00:00  
				
					
						
							
							
								 
						
							
								e0a70388c2 
								
							 
						 
						
							
							
								
								enable the branch folding pass for the JIT.  
							
							... 
							
							
							
							llvm-svn: 31777 
							
						 
						
							2006-11-16 01:00:07 +00:00  
				
					
						
							
							
								 
						
							
								6ea4fae838 
								
							 
						 
						
							
							
								
								1. Add a pass to fold debug label instructions so a debug info client can detect  
							
							... 
							
							
							
							empty ranges.
2. Reorg how MachineDebugInfo maintains changes to debug labels.
3. Have dwarf writer use debug label info to simplify scopes and source line
coorespondence.
4. Revert the merging of compile units until I can get the bugs ironed out.
llvm-svn: 31507 
							
						 
						
							2006-11-07 19:33:46 +00:00  
				
					
						
							
							
								 
						
							
								1941bfa361 
								
							 
						 
						
							
							
								
								Don't do dead block elimination in fast mode.  
							
							... 
							
							
							
							llvm-svn: 31155 
							
						 
						
							2006-10-24 16:11:49 +00:00  
				
					
						
							
							
								 
						
							
								55ad08a59b 
								
							 
						 
						
							
							
								
								add the branch folding pass as a late cleanup pass for all targets.  For now  
							
							... 
							
							
							
							it just deletes empty MBB's.  Soon it will do more :)
llvm-svn: 30941 
							
						 
						
							2006-10-13 20:45:56 +00:00  
				
					
						
							
							
								 
						
							
								cf6749e4c0 
								
							 
						 
						
							
							
								
								add setJumpBufSize() and setJumpBufAlignment() to target-lowering.  
							
							... 
							
							
							
							Call these from your backend to enjoy setjmp/longjmp goodness, see
lib/Target/IA64/IA64ISelLowering.cpp for an example
llvm-svn: 30095 
							
						 
						
							2006-09-04 06:21:35 +00:00  
				
					
						
							
							
								 
						
							
								a916db12e4 
								
							 
						 
						
							
							
								
								new file  
							
							... 
							
							
							
							llvm-svn: 30082 
							
						 
						
							2006-09-04 04:16:09 +00:00