|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| ... |  | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | implementing PR12013.  We now compile the testcase to:
__Z4testv:                              ## @_Z4testv
## BB#0:                                ## %_ZN4llvm15SmallVectorImplIiE9push_backERKi.exit
	pushq	%rbx
	subq	$64, %rsp
	leaq	32(%rsp), %rbx
	movq	%rbx, (%rsp)
	leaq	64(%rsp), %rax
	movq	%rax, 16(%rsp)
	movl	$1, 32(%rsp)
	leaq	36(%rsp), %rax
	movq	%rax, 8(%rsp)
	leaq	(%rsp), %rdi
	callq	__Z1gRN4llvm11SmallVectorIiLj8EEE
	movq	(%rsp), %rdi
	cmpq	%rbx, %rdi
	je	LBB0_2
## BB#1:
	callq	_free
LBB0_2:                                 ## %_ZN4llvm11SmallVectorIiLj8EED1Ev.exit
	addq	$64, %rsp
	popq	%rbx
	ret
instead of:
__Z4testv:                              ## @_Z4testv
## BB#0:
	pushq	%rbx
	subq	$64, %rsp
	xorl	%eax, %eax
	leaq	(%rsp), %rbx
	addq	$32, %rbx
	movq	%rbx, (%rsp)
	movq	%rbx, 8(%rsp)
	leaq	64(%rsp), %rcx
	movq	%rcx, 16(%rsp)
	je	LBB0_2
## BB#1:
	movl	$1, 32(%rsp)
	movq	%rbx, %rax
LBB0_2:                                 ## %_ZN4llvm15SmallVectorImplIiE9push_backERKi.exit
	addq	$4, %rax
	movq	%rax, 8(%rsp)
	leaq	(%rsp), %rdi
	callq	__Z1gRN4llvm11SmallVectorIiLj8EEE
	movq	(%rsp), %rdi
	cmpq	%rbx, %rdi
	je	LBB0_4
## BB#3:
	callq	_free
LBB0_4:                                 ## %_ZN4llvm11SmallVectorIiLj8EED1Ev.exit
	addq	$64, %rsp
	popq	%rbx
	ret
This doesn't shrink clang noticably though.
llvm-svn: 150944 | 
| | 
| 
| 
| 
| 
| 
| | functionality changed. This is in preparation for some refactoring of
how this class behaves.
llvm-svn: 150941 | 
| | 
| 
| 
| 
| 
| | the information that they pass around between them. No functionality change!
llvm-svn: 150939 | 
| | 
| 
| 
| | llvm-svn: 150921 | 
| | 
| 
| 
| | llvm-svn: 150918 | 
| | 
| 
| 
| | llvm-svn: 150917 | 
| | 
| 
| 
| 
| 
| | Remove unneeded 'using namespace'.
llvm-svn: 150916 | 
| | 
| 
| 
| | llvm-svn: 150915 | 
| | 
| 
| 
| | llvm-svn: 150914 | 
| | 
| 
| 
| 
| 
| | VectorShuffleSDNode.
llvm-svn: 150913 | 
| | 
| 
| 
| | llvm-svn: 150912 | 
| | 
| 
| 
| 
| 
| | FYI, clang/test/SemaTemplate/template-id-printing.cpp had been failing due to it on cygwin-clang.
llvm-svn: 150911 | 
| | 
| 
| 
| | llvm-svn: 150910 | 
| | 
| 
| 
| 
| 
| | Hold (LiveInterval, LiveRange) pairs to update, rather than vregs.
llvm-svn: 150909 | 
| | 
| 
| 
| 
| 
| | no longer needed by isel.
llvm-svn: 150908 | 
| | 
| 
| 
| | llvm-svn: 150904 | 
| | 
| 
| 
| | llvm-svn: 150902 | 
| | 
| 
| 
| | llvm-svn: 150899 | 
| | 
| 
| 
| | llvm-svn: 150897 | 
| | 
| 
| 
| | llvm-svn: 150890 | 
| | 
| 
| 
| | llvm-svn: 150886 | 
| | 
| 
| 
| 
| 
| | building bullet.
llvm-svn: 150885 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | the cast. If we do, we can end up with
   inst1
   ---------------  < Insertion point
   dbg inst
   new inst
instead of the desired
   inst1
   new inst
   ---------------  < Insertion point
   dbg inst
Another option would be for InsertNoopCastOfTo (or its callers) to move the
insertion point and we would end up with
   inst1
   dbg inst
   new inst
   ---------------  < Insertion point
but that complicates the callers. This fixes PR12018 (and firefox's build).
llvm-svn: 150884 | 
| | 
| 
| 
| 
| 
| | MSP430, PPC, PTX, Sparc, X86, XCore.
llvm-svn: 150878 | 
| | 
| 
| 
| | llvm-svn: 150874 | 
| | 
| 
| 
| 
| 
| | Original patch by Kay Tiong Khoo. Few tweaks by me for code density and to reduce replication.
llvm-svn: 150873 | 
| | 
| 
| 
| 
| 
| | etc. No functionality changed.
llvm-svn: 150867 | 
| | 
| 
| 
| 
| 
| | LHS->stripPointerCasts() != RHS->stripPointerCasts().
llvm-svn: 150863 | 
| | 
| 
| 
| | llvm-svn: 150851 | 
| | 
| 
| 
| | llvm-svn: 150848 | 
| | 
| 
| 
| | llvm-svn: 150842 | 
| | 
| 
| 
| | llvm-svn: 150841 | 
| | 
| 
| 
| | llvm-svn: 150840 | 
| | 
| 
| 
| | llvm-svn: 150836 | 
| | 
| 
| 
| | llvm-svn: 150833 | 
| | 
| 
| 
| 
| 
| 
| | to why this is needed.  This broke the darwin's otool(1) program.  This change
was made in r144385.
llvm-svn: 150832 | 
| | 
| 
| 
| 
| 
| | Calls always clobber CPSR.
llvm-svn: 150831 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | MRI keeps track of which physregs have been used. Make sure it gets
updated with all the regmask-clobbered registers.
Delete the closePhysRegsUsed() function which isn't necessary.
llvm-svn: 150830 | 
| | 
| 
| 
| 
| 
| 
| 
| | metadata may still unwind, but only in ways that the ARC
optimizer doesn't need to consider. This permits more
aggressive optimization.
llvm-svn: 150829 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | any changes.
Internally this adds a private inner class HMEditor, to LiveIntervals. HMEditor provides
an API for updating live intervals when code is moved or bundled.
llvm-svn: 150826 | 
| | 
| 
| 
| 
| 
| 
| 
| | actually work, at least as described. LLVM Metadata is not
intended to suppress LLVM IR rules, as it can be stripped at
any time.
llvm-svn: 150821 | 
| | 
| 
| 
| | llvm-svn: 150820 | 
| | 
| 
| 
| 
| 
| | breaking other platforms...
llvm-svn: 150819 | 
| | 
| 
| 
| | llvm-svn: 150818 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | This caused miscompilations on out-of-tree targets, and possibly i386 as
well.
I'll find some other way of hoisting %rip-relative loads from loops
containing calls.
llvm-svn: 150816 | 
| | 
| 
| 
| 
| 
| 
| 
| | LSDA, which are only used when the eh frame is used, so this lazy allocation doesn't really make sense.
Fix the type of eh_frame on Solaris so that Sun ld doesn't fail to combine them (thus making it impossible for the unwind library to find them and breaking exceptions).
llvm-svn: 150814 | 
| | 
| 
| 
| 
| 
| | guessing that it's the same as the size.
llvm-svn: 150813 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | ld sulk.  GNU ld is perfectly happy with it, which is worrying for a whole other set of reasons...
Thanks to Anton, Duncan and Rafael for helping me track this down.
Pointy hat to Rafael for introducing the bug in the first place.
llvm-svn: 150811 | 
| | 
| 
| 
| | llvm-svn: 150805 | 
| | 
| 
| 
| | llvm-svn: 150796 |