- May 24, 2011
-
-
Devang Patel authored
llvm-svn: 131940
-
Devang Patel authored
llvm-svn: 131936
-
Akira Hatanaka authored
llvm-svn: 131928
-
Akira Hatanaka authored
llvm-svn: 131927
-
Devang Patel authored
llvm-svn: 131926
-
- May 23, 2011
-
-
Akira Hatanaka authored
llvm-svn: 131922
-
Dan Gohman authored
This fixes PR9845. llvm-svn: 131919
-
Jim Grosbach authored
llvm-svn: 131918
-
Akira Hatanaka authored
in MipsFunctionInfo that are no longer used. llvm-svn: 131917
-
Chris Lattner authored
llvm-svn: 131916
-
Akira Hatanaka authored
The following improvements are accomplished as a result of applying this patch: - Fixed frame objects' offsets (relative to either the virtual frame pointer or the stack pointer) are set before instruction selection is completed. There is no need to wait until Prologue/Epilogue Insertion is run to set them. - Calculation of final offsets of fixed frame objects is straightforward. It is no longer necessary to assign negative offsets to fixed objects for incoming arguments in order to distinguish them from the others. - Since a fixed object has its relative offset set during instruction selection, there is no need to conservatively set its alignment to 4. - It is no longer necessary to reorder non-fixed frame objects in MipsFrameLowering::adjustMipsStackFrame. llvm-svn: 131915
-
Devang Patel authored
Patch by Micah Villmow llvm-svn: 131908
-
Devang Patel authored
llvm-svn: 131907
-
Devang Patel authored
llvm-svn: 131906
-
Charles Davis authored
I haven't implemented any of the ones that take registers yet. The problem is that for x86-64 the streamer methods expect a native x86 register number (note: %r8-%r15 want 8-15 instead of 0-7; same for %xmm8-%xmm15). I haven't figured out exactly how I want to do that yet. llvm-svn: 131899
-
Chris Lattner authored
UnitTests/ObjC/messages-2.m with the recent optimizer improvements. llvm-svn: 131897
-
rdar://problem/9476260Cameron Zwarich authored
in Darwin Thumb2 code. Tail calls are already disabled on Thumb1. llvm-svn: 131894
-
Chris Lattner authored
xform recurse. llvm-svn: 131888
-
Chris Lattner authored
in a known-non-zero context. llvm-svn: 131887
-
Chris Lattner authored
for a constant directly. Thanks to Duncan for pointing this out. llvm-svn: 131885
-
Chris Lattner authored
aligned. Teach memcpyopt to not give up all hope when confonted with an underaligned memcpy feeding an overaligned byval. If the *source* of the memcpy can be determined to be adequeately aligned, or if it can be forced to be, we can eliminate the memcpy. This addresses PR9794. We now compile the example into: define i32 @f(%struct.p* nocapture byval align 8 %q) nounwind ssp { entry: %call = call i32 @g(%struct.p* byval align 8 %q) nounwind ret i32 %call } in both x86-64 and x86-32 mode. We still don't get a tailcall though, because tailcalls apparently can't handle byval. llvm-svn: 131884
-
Chris Lattner authored
llvm-svn: 131883
-
Chris Lattner authored
when we're just going to throw the result away. No functionality change. llvm-svn: 131880
-
Chris Lattner authored
llvm-svn: 131874
-
Chris Lattner authored
C99 runtimes don't have exp2). llvm-svn: 131872
-
- May 22, 2011
-
-
Renato Golin authored
RTABI chapter 4.3.4 specifies __eabi_mem* calls. Specifically, __eabi_memset accepts parameters (ptr, size, value) in a different order than GNU's memset (ptr, value, size), therefore the special lowering in AAPCS mode. Implementation by Evzen Muller. llvm-svn: 131868
-
Charles Davis authored
of them, particularly the ones that don't take arguments. Also implement .seh_proc and .seh_handler. llvm-svn: 131866
-
Chris Lattner authored
llvm-svn: 131863
-
Chris Lattner authored
llvm-svn: 131862
-
Evan Cheng authored
llvm-svn: 131861
-
Chris Lattner authored
result is non-zero. Implement an example optimization (PR9814), which allows us to transform: A / ((1 << B) >>u 2) into: A >>u (B-2) which we compile into: _divu3: ## @divu3 leal -2(%rsi), %ecx shrl %cl, %edi movl %edi, %eax ret instead of: _divu3: ## @divu3 movb %sil, %cl movl $1, %esi shll %cl, %esi shrl $2, %esi movl %edi, %eax xorl %edx, %edx divl %esi, %eax ret llvm-svn: 131860
-
Johnny Chen authored
Modified the patch to .td file supplied by Jyun-Yan You. Add a test case and modified ARMDisassemblerCore.cpp a little bit. llvm-svn: 131859
-
Chris Lattner authored
failing to form a memset, then having to delete it" but my approximation isn't safe for self recurrent loops. Instead of doign a hack, just do it the right way. llvm-svn: 131858
-
Frits van Bommel authored
Add a parameter to ConstantFoldTerminator() that callers can use to ask it to also clean up the condition of any conditional terminator it folds to be unconditional, if that turns the condition into dead code. This just means it calls RecursivelyDeleteTriviallyDeadInstructions() in strategic spots. It defaults to the old behavior. I also changed -simplifycfg, -jump-threading and -codegenprepare to use this to produce slightly better code without any extra cleanup passes (AFAICT this was the only place in -simplifycfg where now-dead conditions of replaced terminators weren't being cleaned up). The only other user of this function is -sccp, but I didn't read that thoroughly enough to figure out whether it might be holding pointers to instructions that could be deleted by this. llvm-svn: 131855
-
Chris Lattner authored
"stored once" even if its address is compared. llvm-svn: 131849
-
Chris Lattner authored
causing it to get into infinite loops when it would widen a load (which can necessarily leave around dead loads). llvm-svn: 131847
-
Chris Lattner authored
llvm-svn: 131842
-
Chris Lattner authored
llvm-svn: 131841
-
Nick Lewycky authored
of the inlinee to the code representing the original function. llvm-svn: 131838
-
Chris Lattner authored
llvm-svn: 131837
-