Argyrios Kyrtzidis
							
						 
						
							 
							
							
							
							
								
							
							
								68fec886ed 
								
							 
						 
						
							
							
								
								Fix compilation error on MSVC.  
							
							 
							
							... 
							
							
							
							llvm-svn: 57046 
							
						 
						
							2008-10-04 08:11:49 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								13b048268b 
								
							 
						 
						
							
							
								
								Fix fast-isel's handling of atomic instructions. They may  
							
							 
							
							... 
							
							
							
							expand to multiple basic blocks, in which case fast-isel
needs to informed of which block to use as it resumes
inserting instructions.
llvm-svn: 57040 
							
						 
						
							2008-10-04 00:56:36 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								78bb44fcd4 
								
							 
						 
						
							
							
								
								Fix a bug in the local allocator's liveness computation where it  
							
							 
							
							... 
							
							
							
							was setting kill flags on tied uses in two-address instructions.
The kill flags were causing the allocator to think it could
allocate the use and its tied def in different registers.
llvm-svn: 57039 
							
						 
						
							2008-10-04 00:31:14 +00:00  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								5d60c1ebb1 
								
							 
						 
						
							
							
								
								Pass MemOperand through for 64-bit atomics on 32-bit,  
							
							 
							
							... 
							
							
							
							incidentally making the case where the memop is a
pointer deref work.  Fix cmp-and-swap regression.
llvm-svn: 57027 
							
						 
						
							2008-10-03 19:41:08 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								b62cd7ea98 
								
							 
						 
						
							
							
								
								Use -1ULL instead of uint64_t(-1), at Anton's suggestion.  
							
							 
							
							... 
							
							
							
							llvm-svn: 57021 
							
						 
						
							2008-10-03 17:56:45 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								8428cfc93b 
								
							 
						 
						
							
							
								
								Fix typos pointed out by Duncan. Also untabify these files.  
							
							 
							
							... 
							
							
							
							llvm-svn: 57018 
							
						 
						
							2008-10-03 17:11:58 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								0d1e9a8e04 
								
							 
						 
						
							
							
								
								Switch the MachineOperand accessors back to the short names like  
							
							 
							
							... 
							
							
							
							isReg, etc., from isRegister, etc.
llvm-svn: 57006 
							
						 
						
							2008-10-03 15:45:36 +00:00  
						
					 
				
					
						
							
							
								 
								Duncan Sands
							
						 
						
							 
							
							
							
							
								
							
							
								6e42742d2d 
								
							 
						 
						
							
							
								
								The result of getSetCCResultType (eg: i32) may be larger  
							
							 
							
							... 
							
							
							
							than the type an i1 is promoted to (eg: i8).  Account
for this.  Noticed by Tilmann Scheller on CellSPU; he
will hopefully take care of fixing this in LegalizeDAG
and adding a testcase!
llvm-svn: 56997 
							
						 
						
							2008-10-03 07:41:46 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								a78bae34a5 
								
							 
						 
						
							
							
								
								Add a new MachineBasicBlock utility function, isLayoutSuccessor, that  
							
							 
							
							... 
							
							
							
							can be used when deciding if a block can transfer control to another
via a fall-through instead of a branch.
llvm-svn: 56968 
							
						 
						
							2008-10-02 22:09:09 +00:00  
						
					 
				
					
						
							
							
								 
								Andrew Lenharth
							
						 
						
							 
							
							
							
							
								
							
							
								72a9e7367c 
								
							 
						 
						
							
							
								
								fix build gcc 4.3  
							
							 
							
							... 
							
							
							
							llvm-svn: 56965 
							
						 
						
							2008-10-02 20:15:08 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								c5b45fec6b 
								
							 
						 
						
							
							
								
								Use a multimap rather than a map for holding the list of copies to insert, so we don't lose copies when two of them have  
							
							 
							
							... 
							
							
							
							the same source.  I don't know what I was thinking when I wrote this originally.
Note: There's probably a more efficient way to do this, but I need to think about it some more, and about what determinism
guarantees need to be present.
llvm-svn: 56964 
							
						 
						
							2008-10-02 19:40:33 +00:00  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								867d549fce 
								
							 
						 
						
							
							
								
								Handle some 64-bit atomics on x86-32, some of the time.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56963 
							
						 
						
							2008-10-02 18:53:47 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								b25f4637dd 
								
							 
						 
						
							
							
								
								A Partitioned Boolean Quadratic Programming (PBQP) based register allocator.  
							
							 
							
							... 
							
							
							
							Contributed by Lang Hames.
llvm-svn: 56959 
							
						 
						
							2008-10-02 18:29:27 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								88536398ff 
								
							 
						 
						
							
							
								
								Fix a think-o in isSafeToMove. This fixes it from thinking that  
							
							 
							
							... 
							
							
							
							volatile memory references are safe to move.
llvm-svn: 56948 
							
						 
						
							2008-10-02 15:04:30 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								1b76f2c40b 
								
							 
						 
						
							
							
								
								Remove OptimizeForSize global. Use function attribute optsize.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56937 
							
						 
						
							2008-10-01 23:18:38 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								3b88f10f46 
								
							 
						 
						
							
							
								
								Enable FastISel by default (on x86 and x86-64) with the -fast option.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56930 
							
						 
						
							2008-10-01 20:39:19 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								1dd27578dd 
								
							 
						 
						
							
							
								
								Make some implicit conversions explicit, to avoid compiler warnings.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56927 
							
						 
						
							2008-10-01 19:58:59 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								94798d31dd 
								
							 
						 
						
							
							
								
								Fold trivial two-operand tokenfactors where the operands are equal  
							
							 
							
							... 
							
							
							
							immediately.
llvm-svn: 56921 
							
						 
						
							2008-10-01 15:11:19 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								3a293e7404 
								
							 
						 
						
							
							
								
								Fix typos in comments.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56919 
							
						 
						
							2008-10-01 15:07:49 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								68f12ee567 
								
							 
						 
						
							
							
								
								Implement the -fno-builtin option in the front-end, not in the back-end.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56900 
							
						 
						
							2008-10-01 00:59:58 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								15e6be8cc5 
								
							 
						 
						
							
							
								
								Mark merged-in VNInfo's as being PHIKilled.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56893 
							
						 
						
							2008-09-30 23:58:47 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								f4a36407c7 
								
							 
						 
						
							
							
								
								Fix a simple error in renumbering kill markaers, that took an inordinant amount of time to track down.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56889 
							
						 
						
							2008-09-30 22:51:54 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								e818bc159f 
								
							 
						 
						
							
							
								
								- Initialize "--no-builtin" to "false".  
							
							 
							
							... 
							
							
							
							- Testcase for r56885.
llvm-svn: 56886 
							
						 
						
							2008-09-30 21:40:30 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								bd09262e97 
								
							 
						 
						
							
							
								
								Add the new `-no-builtin' flag. This flag is meant to mimic the GCC  
							
							 
							
							... 
							
							
							
							`-fno-builtin' flag. Currently, it's used to replace "memset" with "_bzero"
instead of "__bzero" on Darwin10+. This arguably violates the meaning of this
flag, but is currently sufficient. The meaning of this flag should become more
specific over time.
llvm-svn: 56885 
							
						 
						
							2008-09-30 21:22:07 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								86aa16a69a 
								
							 
						 
						
							
							
								
								Optimize SelectionDAG's AssignTopologicalOrder even further.  
							
							 
							
							... 
							
							
							
							Completely eliminate the TopOrder std::vector. Instead, sort
the AllNodes list in place. This also eliminates the need to
call AllNodes.size(), a linear-time operation, before
performing the sort.
Also, eliminate the Sources temporary std::vector, since it
essentially duplicates the sorted result as it is being
built.
This also changes the direction of the topological sort
from bottom-up to top-down. The AllNodes list starts out in
roughly top-down order, so this reduces the amount of
reordering needed. Top-down is also more convenient for
Legalize, and ISel needed only minor adjustments.
llvm-svn: 56867 
							
						 
						
							2008-09-30 18:30:35 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								9156bd2f48 
								
							 
						 
						
							
							
								
								Re-apply 56835 along with header file changes.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56848 
							
						 
						
							2008-09-30 15:44:16 +00:00  
						
					 
				
					
						
							
							
								 
								Duncan Sands
							
						 
						
							 
							
							
							
							
								
							
							
								2b9adce1d0 
								
							 
						 
						
							
							
								
								Revert commit 56835 since it breaks the build.  
							
							 
							
							... 
							
							
							
							"If a re-materializable instruction has a register
operand, the spiller will change the register operand's
spill weight to HUGE_VAL to avoid it being spilled.
However, if the operand is already in the queue ready
to be spilled, avoid re-materializing it".
llvm-svn: 56837 
							
						 
						
							2008-09-30 10:00:30 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								9469049f7d 
								
							 
						 
						
							
							
								
								If a re-materializable instruction has a register operand, the spiller will change the register operand's spill weight to HUGE_VAL to avoid it being spilled. However, if the operand is already in the queue ready to be spilled, avoid re-materializing it.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56835 
							
						 
						
							2008-09-30 06:36:58 +00:00  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								f61a84ec43 
								
							 
						 
						
							
							
								
								Remove misuse of ReplaceNodeResults for atomics with  
							
							 
							
							... 
							
							
							
							valid types.  No functional change.
llvm-svn: 56808 
							
						 
						
							2008-09-29 22:25:26 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								4aa9095398 
								
							 
						 
						
							
							
								
								Fix FastISel to not initialize the PIC-base register multiple times  
							
							 
							
							... 
							
							
							
							in functions with PIC references from more than one basic block.
llvm-svn: 56807 
							
						 
						
							2008-09-29 21:55:50 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								c966a737c5 
								
							 
						 
						
							
							
								
								Temporarily reverting r56683. This is causing a failure during the build of llvm-gcc:  
							
							 
							
							... 
							
							
							
							/Volumes/Gir/devel/llvm/clean/llvm-gcc.obj/./gcc/xgcc -B/Volumes/Gir/devel/llvm/clean/llvm-gcc.obj/./gcc/ -B/Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/bin/ -B/Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/lib/ -isystem /Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/include -isystem /Volumes/Gir/devel/llvm/clean/llvm-gcc.install/i386-apple-darwin9.5.0/sys-include -mmacosx-version-min=10.4 -O2  -O2 -g -O2  -DIN_GCC    -W -Wall -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes -Wold-style-definition  -isystem ./include  -fPIC -pipe -g -DHAVE_GTHR_DEFAULT -DIN_LIBGCC2 -D__GCC_FLOAT_NOT_NEEDED  -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include  -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Gir/devel/llvm/clean/llvm.obj/include -I/Volumes/Gir/devel/llvm/clean/llvm.src/include -fexceptions -fvisibility=hidden -DHIDE_EXPORTS -c ../../llvm-gcc.src/gcc/unwind-dw2-fde-darwin.c -o libgcc/./unwind-dw2-fde-darwin.o
Assertion failed: (TargetRegisterInfo::isVirtualRegister(regA) && TargetRegisterInfo::isVirtualRegister(regB) && "cannot update physical register live information"), function runOnMachineFunction, file /Volumes/Gir/devel/llvm/clean/llvm.src/lib/CodeGen/TwoAddressInstructionPass.cpp, line 311.
../../llvm-gcc.src/gcc/unwind-dw2.c:1527: internal compiler error: Abort trap
Please submit a full bug report,
with preprocessed source if appropriate.
See <URL:http://developer.apple.com/bugreporter > for instructions.
{standard input}:3521:non-relocatable subtraction expression, "_dwarf_reg_size_table" minus "L20$pb"
{standard input}:3521:symbol: "_dwarf_reg_size_table" can't be undefined in a subtraction expression
{standard input}:3520:non-relocatable subtraction expression, "_dwarf_reg_size_table" minus "L20$pb"
...
llvm-svn: 56703 
							
						 
						
							2008-09-26 22:10:44 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								6e0548336a 
								
							 
						 
						
							
							
								
								Rename ConstantSDNode's getSignExtended to getSExtValue, for  
							
							 
							
							... 
							
							
							
							consistancy with ConstantInt, and re-implement it in terms
of ConstantInt's getSExtValue.
llvm-svn: 56700 
							
						 
						
							2008-09-26 21:54:37 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								d77cbe8947 
								
							 
						 
						
							
							
								
								Fix @llvm.frameaddress codegen. FP elimination optimization should be disabled when frame address is desired. Also add support for depth > 0.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56683 
							
						 
						
							2008-09-26 19:48:35 +00:00  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								0e32a2c935 
								
							 
						 
						
							
							
								
								Add "inreg" field to CallSDNode (doesn't increase  
							
							 
							
							... 
							
							
							
							its size).  Adjust various lowering functions to
pass this info through from CallInst.  Use it to
implement sseregparm returns on X86.  Remove
X86_ssecall calling convention.
llvm-svn: 56677 
							
						 
						
							2008-09-26 19:31:26 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								a381313d98 
								
							 
						 
						
							
							
								
								We don't need to insert copies for implicit_def's.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56674 
							
						 
						
							2008-09-26 18:50:46 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								374d7f2b16 
								
							 
						 
						
							
							
								
								If we have a function with an unreachable statement such that the ending debug  
							
							 
							
							... 
							
							
							
							information is in an unreachable block, then it's possible that the high/low pc
values won't be set for the dwarf information. E.g., this function:
void abort(void) __attribute__((__noreturn__));
void dead_beef(void) __attribute__ ((noreturn));
int *b;
void dead_beef(void) {
  *b=0xdeadbeef;
  abort();
}
has a call to "@llvm.dbg.region.end" only in the unreachable block:
define void @dead_beef() noreturn nounwind  {
entry:
	call void @llvm.dbg.func.start(...)
	call void @llvm.dbg.stoppoint(...)
...
	call void @abort( ) noreturn nounwind 
	unreachable
return:		; No predecessors!
	call void @llvm.dbg.stoppoint(...)
	call void @llvm.dbg.region.end(...)
	ret void
}
The dwarf information emitted is something like:
0x00000084:     TAG_subprogram [5]  
                 AT_name( "dead_beef" )
                 AT_external( 0x01 )
                 AT_prototyped( 0x01 )
                 AT_decl_file( 0x01 )
                 AT_decl_line( 0x08 )
Note that this is *not* the best fix for this problem, but a band-aid for an
gaping wound. This code needs to be changed when we revamp our debugging
information.
llvm-svn: 56628 
							
						 
						
							2008-09-26 00:28:12 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								4c758ea3e0 
								
							 
						 
						
							
							
								
								Large mechanical patch.  
							
							 
							
							... 
							
							
							
							s/ParamAttr/Attribute/g
s/PAList/AttrList/g
s/FnAttributeWithIndex/AttributeWithIndex/g
s/FnAttr/Attribute/g
This sets the stage 
- to implement function notes as function attributes and 
- to distinguish between function attributes and return value attributes.
This requires corresponding changes in llvm-gcc and clang.
llvm-svn: 56622 
							
						 
						
							2008-09-25 21:00:45 +00:00  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								c50ada2f56 
								
							 
						 
						
							
							
								
								Accept 'inreg' attribute on x86 functions as  
							
							 
							
							... 
							
							
							
							meaning sse_regparm (i.e. float/double values go
in XMM0 instead of ST0).  Update documentation
to reflect reality.
llvm-svn: 56619 
							
						 
						
							2008-09-25 20:47:45 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								6975c36c43 
								
							 
						 
						
							
							
								
								Don't print fast-isel debug messages by default. Thanks Chris!  
							
							 
							
							... 
							
							
							
							llvm-svn: 56614 
							
						 
						
							2008-09-25 17:21:42 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								dd920bf3f0 
								
							 
						 
						
							
							
								
								Don't forget the newline in debug output.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56613 
							
						 
						
							2008-09-25 17:17:27 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								32a733e2c7 
								
							 
						 
						
							
							
								
								FastISel support for debug info.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56610 
							
						 
						
							2008-09-25 17:05:24 +00:00  
						
					 
				
					
						
							
							
								 
								Richard Pennington
							
						 
						
							 
							
							
							
							
								
							
							
								4b35e64504 
								
							 
						 
						
							
							
								
								bug 2812: Segmentation fault on a big emdiam processor.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56609 
							
						 
						
							2008-09-25 16:15:10 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								b8e69f1755 
								
							 
						 
						
							
							
								
								Enable DeadMachineInstructionElim when Fast-ISel is enabled.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56604 
							
						 
						
							2008-09-25 01:14:49 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								b873aa632c 
								
							 
						 
						
							
							
								
								Add debug output to this pass.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56602 
							
						 
						
							2008-09-25 01:06:50 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								acb0554842 
								
							 
						 
						
							
							
								
								Refactor the code that adds standard LLVM codegen passes into  
							
							 
							
							... 
							
							
							
							a separate function, eliminating duplication between the
add-passes-for-file and add-passes-for-machine-code code.
llvm-svn: 56599 
							
						 
						
							2008-09-25 00:37:07 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								2e7450716a 
								
							 
						 
						
							
							
								
								<rdar://problem/6234798> Assertion failed: (!OpInfo.AssignedRegs.Regs.empty() && "Couldn't allocate input reg!")  
							
							 
							
							... 
							
							
							
							llvm-svn: 56597 
							
						 
						
							2008-09-25 00:14:04 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								382e2ec6b7 
								
							 
						 
						
							
							
								
								Give LowerSubregs.cpp a top-level description.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56596 
							
						 
						
							2008-09-24 23:44:12 +00:00  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								86d421df23 
								
							 
						 
						
							
							
								
								Remove SelectionDag early allocation of registers  
							
							 
							
							... 
							
							
							
							for earlyclobbers.  Teach Local RA about earlyclobber,
and add some tests for it.
llvm-svn: 56592 
							
						 
						
							2008-09-24 23:13:09 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								fd7faecfc2 
								
							 
						 
						
							
							
								
								Use helper  
							
							 
							
							... 
							
							
							
							llvm-svn: 56584 
							
						 
						
							2008-09-24 22:21:04 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								d19e91e5a8 
								
							 
						 
						
							
							
								
								SmallPtrSet will be better  
							
							 
							
							... 
							
							
							
							llvm-svn: 56583 
							
						 
						
							2008-09-24 22:20:46 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								123afb88c4 
								
							 
						 
						
							
							
								
								Use generic section-handling stuff to emit constant pool entries  
							
							 
							
							... 
							
							
							
							llvm-svn: 56579 
							
						 
						
							2008-09-24 22:17:59 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								7497762606 
								
							 
						 
						
							
							
								
								Get rid of duplicate char*/Section* DataSection  
							
							 
							
							... 
							
							
							
							llvm-svn: 56575 
							
						 
						
							2008-09-24 22:16:16 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								f8dc8aac3c 
								
							 
						 
						
							
							
								
								Get rid of duplicate char*/Section* TextSection  
							
							 
							
							... 
							
							
							
							llvm-svn: 56574 
							
						 
						
							2008-09-24 22:15:21 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								076e905b94 
								
							 
						 
						
							
							
								
								Move actual section printing stuff to AsmPrinter from TAI reducing heap traffic.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56573 
							
						 
						
							2008-09-24 22:14:23 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								69ff51baa0 
								
							 
						 
						
							
							
								
								Drop obsolete hook and change all usage to new interface  
							
							 
							
							... 
							
							
							
							llvm-svn: 56572 
							
						 
						
							2008-09-24 22:13:07 +00:00  
						
					 
				
					
						
							
							
								 
								Anton Korobeynikov
							
						 
						
							 
							
							
							
							
								
							
							
								7d002fa77b 
								
							 
						 
						
							
							
								
								Provide direct function to switch to Section  
							
							 
							
							... 
							
							
							
							llvm-svn: 56571 
							
						 
						
							2008-09-24 22:12:10 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								4ef4b1a7c1 
								
							 
						 
						
							
							
								
								Fix off-by-one error when updating live intervals.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56567 
							
						 
						
							2008-09-24 21:30:38 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								dea91308ae 
								
							 
						 
						
							
							
								
								Reapplying r56550  
							
							 
							
							... 
							
							
							
							llvm-svn: 56553 
							
						 
						
							2008-09-24 10:25:02 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								162c26dee3 
								
							 
						 
						
							
							
								
								Forgot this part with my last patch. Sorry about the breakage.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56552 
							
						 
						
							2008-09-24 10:16:24 +00:00  
						
					 
				
					
						
							
							
								 
								Eric Christopher
							
						 
						
							 
							
							
							
							
								
							
							
								4e26a81371 
								
							 
						 
						
							
							
								
								Temporarily revert r56550 until missing commit can be added.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56551 
							
						 
						
							2008-09-24 08:30:44 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								7c31464a0b 
								
							 
						 
						
							
							
								
								Refactor the constant folding code into it's own function. And call it from both  
							
							 
							
							... 
							
							
							
							the SelectionDAG and DAGCombiner code. The only functionality change is that now
the DAG combiner is performing the constant folding for these operations instead
of being a no-op.
This is *not* in response to a bug, so there isn't a testcase.
llvm-svn: 56550 
							
						 
						
							2008-09-24 07:11:26 +00:00  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								c36660d756 
								
							 
						 
						
							
							
								
								Next round of earlyclobber handling.  Approach the  
							
							 
							
							... 
							
							
							
							RA problem by expanding the live interval of an
earlyclobber def back one slot.  Remove
overlap-earlyclobber throughout.  Remove 
earlyclobber bits and their handling from
live internals.
llvm-svn: 56539 
							
						 
						
							2008-09-24 01:07:17 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								6b33aa4d96 
								
							 
						 
						
							
							
								
								Refactor the logic for testing if an instruction is dead into a  
							
							 
							
							... 
							
							
							
							separate method.
llvm-svn: 56531 
							
						 
						
							2008-09-24 00:27:38 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								1e2b282be3 
								
							 
						 
						
							
							
								
								Set SetStore to false, to allow this pass to delete  
							
							 
							
							... 
							
							
							
							dead loads.
llvm-svn: 56529 
							
						 
						
							2008-09-24 00:07:08 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								7c59ed6ff8 
								
							 
						 
						
							
							
								
								Add a method to MachineInstr for testing whether it makes  
							
							 
							
							... 
							
							
							
							any volatile memory references.
llvm-svn: 56528 
							
						 
						
							2008-09-24 00:06:15 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								e0add20c1b 
								
							 
						 
						
							
							
								
								Properly handle 'm' inline asm constraints. If a GV is being selected for the addressing mode, it requires the same logic for PIC relative addressing, etc.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56526 
							
						 
						
							2008-09-24 00:05:32 +00:00  
						
					 
				
					
						
							
							
								 
								Devang Patel
							
						 
						
							 
							
							
							
							
								
							
							
								ba3fa6c6e1 
								
							 
						 
						
							
							
								
								s/ParameterAttributes/Attributes/g  
							
							 
							
							... 
							
							
							
							llvm-svn: 56513 
							
						 
						
							2008-09-23 23:03:40 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								676145f02d 
								
							 
						 
						
							
							
								
								Now that DeadMachineInstructionElim is basically working  
							
							 
							
							... 
							
							
							
							correctly, it's not necessary to explicitly remove registers
from their use-def lists.
llvm-svn: 56509 
							
						 
						
							2008-09-23 22:04:18 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								269999cb03 
								
							 
						 
						
							
							
								
								Track local physical register liveness. This is not the most  
							
							 
							
							... 
							
							
							
							efficient implementation possible, but it's pretty simple and
good enough for the time being.
llvm-svn: 56504 
							
						 
						
							2008-09-23 21:40:44 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								c07f686665 
								
							 
						 
						
							
							
								
								Replace the LiveRegs SmallSet with a simple counter that keeps  
							
							 
							
							... 
							
							
							
							track of the number of live registers, which is all the set was
being used for.
llvm-svn: 56498 
							
						 
						
							2008-09-23 18:50:48 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								4cdc18ad80 
								
							 
						 
						
							
							
								
								Add initial support for inserting last minute copies.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56485 
							
						 
						
							2008-09-23 04:37:10 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								e2947e1e07 
								
							 
						 
						
							
							
								
								Fix the alignment of loads from constant pool entries when the  
							
							 
							
							... 
							
							
							
							load address has an offset from the base of the constant pool
entry.
llvm-svn: 56479 
							
						 
						
							2008-09-22 22:40:08 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								bab5988017 
								
							 
						 
						
							
							
								
								Livestacks really does preserve everything.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56476 
							
						 
						
							2008-09-22 22:26:15 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								962c2cf17a 
								
							 
						 
						
							
							
								
								Instead of setPreservesAll, just mark them preseving machine loop info and machine dominators.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56475 
							
						 
						
							2008-09-22 22:21:38 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								97364655dc 
								
							 
						 
						
							
							
								
								Significant improvements to the logic for merging live intervals.  This code can't  
							
							 
							
							... 
							
							
							
							just use LI::MergeValueAsValue, as its behavior in the presence of overlapping ranges
isn't what StrongPHIElimination wants.
llvm-svn: 56472 
							
						 
						
							2008-09-22 21:58:58 +00:00  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								7a74e71489 
								
							 
						 
						
							
							
								
								Make log, log2, log10, exp, exp2 use Expand by  
							
							 
							
							... 
							
							
							
							default.
llvm-svn: 56471 
							
						 
						
							2008-09-22 21:57:32 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								168f8f3916 
								
							 
						 
						
							
							
								
								Mark several codegen passes as preserving all analysis.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56469 
							
						 
						
							2008-09-22 20:58:04 +00:00  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								f1acc4d610 
								
							 
						 
						
							
							
								
								More refactoring.  Yawn.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56468 
							
						 
						
							2008-09-22 20:51:30 +00:00  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								7beddb8680 
								
							 
						 
						
							
							
								
								Refactor FP intrinisic setup.  Per review feedback.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56456 
							
						 
						
							2008-09-22 19:51:58 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								13beeeb128 
								
							 
						 
						
							
							
								
								Per review feedback: Only perform  
							
							 
							
							... 
							
							
							
							(srl x, (trunc (and y, c))) -> (srl x, (and (trunc y), c))
etc. when both "trunc" and "and" have single uses.
llvm-svn: 56452 
							
						 
						
							2008-09-22 18:19:24 +00:00  
						
					 
				
					
						
							
							
								 
								Oscar Fuentes
							
						 
						
							 
							
							
							
							
								
							
							
								a229b3c9a7 
								
							 
						 
						
							
							
								
								Initial support for the CMake build system.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56419 
							
						 
						
							2008-09-22 01:08:49 +00:00  
						
					 
				
					
						
							
							
								 
								Bill Wendling
							
						 
						
							 
							
							
							
							
								
							
							
								91ef8fcd29 
								
							 
						 
						
							
							
								
								Add helper function to get a 32-bit floating point constant. No functionality change.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56418 
							
						 
						
							2008-09-22 00:44:35 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								ae9d9f4d3f 
								
							 
						 
						
							
							
								
								Factor out code into HandleVirtRegDef, for consistency with  
							
							 
							
							... 
							
							
							
							Handle{Virt,Phys}Reg{Def,Use}. Remove a redundant check
for register zero, and redundant checks for isPhysicalRegister.
llvm-svn: 56412 
							
						 
						
							2008-09-21 21:11:41 +00:00  
						
					 
				
					
						
							
							
								 
								Owen Anderson
							
						 
						
							 
							
							
							
							
								
							
							
								df8f1cb995 
								
							 
						 
						
							
							
								
								Fetch the starting index of the block when assigning intervals.  This gets live-in indices  
							
							 
							
							... 
							
							
							
							correct in the presence of things like EH labels.
llvm-svn: 56410 
							
						 
						
							2008-09-21 20:43:24 +00:00  
						
					 
				
					
						
							
							
								 
								Chris Lattner
							
						 
						
							 
							
							
							
							
								
							
							
								43f5449c48 
								
							 
						 
						
							
							
								
								don't print GlobalAddressSDNode's with an offset of zero as "foo0".  
							
							 
							
							... 
							
							
							
							llvm-svn: 56399 
							
						 
						
							2008-09-21 18:38:31 +00:00  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								9af7b3daec 
								
							 
						 
						
							
							
								
								Teach coalescer about earlyclobber bits.  
							
							 
							
							... 
							
							
							
							Check bits for preferred register.
llvm-svn: 56384 
							
						 
						
							2008-09-20 02:03:04 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								c042000649 
								
							 
						 
						
							
							
								
								Fix PR2808. When regalloc runs out of register, it spill a physical register around the live interval being allocated. Do not continue to try to spill another register, just grab the physical register and move on.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56381 
							
						 
						
							2008-09-20 01:28:05 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								29e4c9192d 
								
							 
						 
						
							
							
								
								Continue after removing the current MI.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56372 
							
						 
						
							2008-09-19 22:49:39 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								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  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								436aae627d 
								
							 
						 
						
							
							
								
								Make earlyclobber stuff work when virtual regs  
							
							 
							
							... 
							
							
							
							have previously been assigned conflicting physreg.
llvm-svn: 56364 
							
						 
						
							2008-09-19 18:52:31 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								4c0197043c 
								
							 
						 
						
							
							
								
								Re-materalized definition instructions may be dead. Whack them.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56352 
							
						 
						
							2008-09-19 17:38:47 +00:00  
						
					 
				
					
						
							
							
								 
								Dale Johannesen
							
						 
						
							 
							
							
							
							
								
							
							
								e519bd4183 
								
							 
						 
						
							
							
								
								Remove AsmThatEarlyClobber etc. from LiveIntervalAnalysis  
							
							 
							
							... 
							
							
							
							and redo as linked list walk.  Logic moved into RA.
Per review feedback.
llvm-svn: 56326 
							
						 
						
							2008-09-19 01:02:35 +00:00  
						
					 
				
					
						
							
							
								 
								Evan Cheng
							
						 
						
							 
							
							
							
							
								
							
							
								3d9416cf24 
								
							 
						 
						
							
							
								
								Somehow RegAllocLinearScan is keeping two pointers to MachineRegisterInfo.  
							
							 
							
							... 
							
							
							
							llvm-svn: 56314 
							
						 
						
							2008-09-18 22:38:47 +00:00  
						
					 
				
					
						
							
							
								 
								Dan Gohman
							
						 
						
							 
							
							
							
							
								
							
							
								f3d647e00b 
								
							 
						 
						
							
							
								
								Don't consider instructions with implicit physical register  
							
							 
							
							... 
							
							
							
							defs to be necessarily live.
llvm-svn: 56310 
							
						 
						
							2008-09-18 18:22:32 +00:00