aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Provide an ARMCCState subclass of CCState so that ARM clients will always setCameron Zwarich2011-06-102-18/+33
| | | | | | CallOrPrologue correctly and eliminate the existing setter. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132856 91177308-0d34-0410-b5e6-96231b3b80d8
* Rename the ParmContext enum values to make a bit more sense and add a smallCameron Zwarich2011-06-102-2/+5
| | | | | | comment on their meaning. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132854 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove tabs.Cameron Zwarich2011-06-102-4/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132853 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove a pointless const_cast.Cameron Zwarich2011-06-101-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132852 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove duplicated test.Rafael Espindola2011-06-101-4/+3
| | | | | | Thanks Bob Wilson for noticing it! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132851 91177308-0d34-0410-b5e6-96231b3b80d8
* Move some sub-register index calculations to CodeGenRegisters.cppJakob Stoklund Olesen2011-06-105-40/+76
| | | | | | | Create a new CodeGenRegBank class that will eventually hold all the code that computes the register structure from Records. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132849 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix example code in comment.Richard Osborne2011-06-101-2/+2
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132844 91177308-0d34-0410-b5e6-96231b3b80d8
* Add -mattr=+sse2 to make the buildbots happy.Eli Friedman2011-06-101-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132839 91177308-0d34-0410-b5e6-96231b3b80d8
* Reverted r132785. It seems this test needs more research.Galina Kistanova2011-06-101-1/+4
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132836 91177308-0d34-0410-b5e6-96231b3b80d8
* Changed condition.Galina Kistanova2011-06-101-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132834 91177308-0d34-0410-b5e6-96231b3b80d8
* Adding a test case for revision 132825.Chad Rosier2011-06-101-0/+18
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132830 91177308-0d34-0410-b5e6-96231b3b80d8
* PR10092 (second try): Don't crash on a load without a momoperand; fast-isel ↵Eli Friedman2011-06-101-1/+1
| | | | | | creates loads like this. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132826 91177308-0d34-0410-b5e6-96231b3b80d8
* Ensure that EmitGlobalVariable is correctly differentiating between declarationsChad Rosier2011-06-101-1/+1
| | | | | | | | | and definitions when emitting global variables. This was causing global declarations to be emitted as if they were definitions. Fixes <rdar://problem/9429892>. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132825 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a simple test which makes sure folding immediate float zero to a memory ↵Eli Friedman2011-06-101-0/+34
| | | | | | operand works. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132824 91177308-0d34-0410-b5e6-96231b3b80d8
* Make the optional verification step more strict.Rafael Espindola2011-06-091-1/+8
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132822 91177308-0d34-0410-b5e6-96231b3b80d8
* Avoid a gcc warning about multiline comments.Rafael Espindola2011-06-091-6/+6
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132821 91177308-0d34-0410-b5e6-96231b3b80d8
* On last fix to the early tail duplication.Rafael Espindola2011-06-091-4/+60
| | | | | | | | With this I am able to bootstrap clang with early tail duplication enabled for any small bb and setting tail-dup-size to a relatively large value(8) to stress this code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132816 91177308-0d34-0410-b5e6-96231b3b80d8
* Chris fixed this README a while back by changing how clang generates code ↵Eli Friedman2011-06-091-45/+0
| | | | | | for structs like the given struct. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132815 91177308-0d34-0410-b5e6-96231b3b80d8
* Also consider phi nodes when deciding if a register is live out.Rafael Espindola2011-06-091-10/+34
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132814 91177308-0d34-0410-b5e6-96231b3b80d8
* A CCState was being created without setting whether it is in the Call or ↵Cameron Zwarich2011-06-092-0/+40
| | | | | | | | | | | Prologue state, causing an assertion failure downstream. This fixes <rdar://problem/9562908>. This really seems like it should always be set at CCState creation time, so mistakes like this can never happen. I'll take a look at doing that. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132811 91177308-0d34-0410-b5e6-96231b3b80d8
* Change this DAGCombine to build AND of SHR instead of SHR of AND; this ↵Eli Friedman2011-06-092-15/+27
| | | | | | | | | | matches the ordering we prefer in instcombine. Part of rdar://9562809. The potential DAGCombine which enforces this more generally messes up some other very fragile patterns, so I'm leaving that alone, at least for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132809 91177308-0d34-0410-b5e6-96231b3b80d8
* AnalyzeBranch modifies the bb, but we don't want to modify a bb withRafael Espindola2011-06-091-7/+6
| | | | | | eh edges. Swap the order of the checks to avoid it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132806 91177308-0d34-0410-b5e6-96231b3b80d8
* A PHI in this basic block is a use in another basic block.Rafael Espindola2011-06-091-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132805 91177308-0d34-0410-b5e6-96231b3b80d8
* When deleting a basic block, remove call edges only for non-intrinsics.John McCall2011-06-091-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132803 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix emission of PPC64 assembler on non-darwin platforms by splittingRoman Divacky2011-06-095-19/+24
| | | | | | | | | VK_PPC_{HA,LO}16 into darwin and gas variants. Darwin wants {ha,lo}16(symbol) while gnu as wants symbol@{ha,l}. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132802 91177308-0d34-0410-b5e6-96231b3b80d8
* Modify comment.Johnny Chen2011-06-091-1/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132800 91177308-0d34-0410-b5e6-96231b3b80d8
* SplitCriticalEdge can sometimes split the edge from an invoke to a landingJohn McCall2011-06-092-29/+276
| | | | | | | | | | | | | | pad, separating the exception and selector calls from the new lpad. Teaching it not to do that, or to properly adjust the CFG afterwards, is out of scope because it would require the other edges to the landing pad to be split as well (effectively). Instead, just recover from the most likely cases during inlining. The best long-term solution is to change the exception representation and commit to either requiring or not requiring the more complex edge-splitting logic; this is just a shorter-term hack. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132799 91177308-0d34-0410-b5e6-96231b3b80d8
* Refactor some checks into shouldTailDuplicate. Update comments.Rafael Espindola2011-06-091-18/+29
| | | | | | No functionality change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132798 91177308-0d34-0410-b5e6-96231b3b80d8
* Teach the CallGraph to ignore calls to intrinsics.John McCall2011-06-094-44/+13
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132797 91177308-0d34-0410-b5e6-96231b3b80d8
* Revert 132789; it breaks tests. My mistake.Eli Friedman2011-06-091-4/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132795 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove an uneeded switch - Turns out reloc results are identical w/o the ↵Jason W Kim2011-06-091-12/+1
| | | | | | switch. (face+palm) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132790 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a check to make sure we don't crash with strange configurations where we ↵Eli Friedman2011-06-091-0/+4
| | | | | | do fast-isel, then try to fold instructions. PR10092. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132789 91177308-0d34-0410-b5e6-96231b3b80d8
* Move TableGen's register bank classes to their own source file.Jakob Stoklund Olesen2011-06-093-73/+102
| | | | | | | | | | | I'll be moving some more code there to gather all of the register-specific stuff in one place. Currently it is shared between CodeGenTarget and RegisterInfoEmitter. The plan is that CodeGenRegisters can compute the full register bank structure while RegisterInfoEmitter only will handle the printing part. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132788 91177308-0d34-0410-b5e6-96231b3b80d8
* Added dg.exp to run FrontendC ARM-dependent tests; updated ↵Galina Kistanova2011-06-092-4/+6
| | | | | | inline-asm-multichar.c test per this change. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132785 91177308-0d34-0410-b5e6-96231b3b80d8
* Add special-case range checking for VCVT_N intrinsic immediate operands.Bob Wilson2011-06-091-3/+8
| | | | | | Radar 9558930. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132782 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove custom allocation order boilerplate that is no longer needed.Jakob Stoklund Olesen2011-06-0914-663/+56
| | | | | | | | | | | | | | | | | | | | The register allocators automatically filter out reserved registers and place the callee saved registers last in the allocation order, so custom methods are no longer necessary just for that. Some targets still use custom allocation orders: ARM/Thumb: The high registers are removed from GPR in thumb mode. The NEON allocation orders prefer to use non-VFP2 registers first. X86: The GR8 classes omit AH-DH in x86-64 mode to avoid REX trouble. SystemZ: Some of the allocation orders are omitting R12 aliases without explanation. I don't understand this target well enough to fix that. It looks like all the boilerplate could be removed by reserving the right registers. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132781 91177308-0d34-0410-b5e6-96231b3b80d8
* Speculatively revert 132758 and 132768 to try to fix the Windows buildbots.Eric Christopher2011-06-099-190/+37
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132777 91177308-0d34-0410-b5e6-96231b3b80d8
* Recommit r132764 since it didn't cause the windows buildbot failures.Eric Christopher2011-06-092-0/+61
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132776 91177308-0d34-0410-b5e6-96231b3b80d8
* Improve the handling of available_externally and llvm.global_ctors.Rafael Espindola2011-06-091-4/+16
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132775 91177308-0d34-0410-b5e6-96231b3b80d8
* Enable printf() to iprintf() optimization for the TCE target.Duncan Sands2011-06-091-2/+2
| | | | | | | Patch by Pekka Jaaskelainen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132774 91177308-0d34-0410-b5e6-96231b3b80d8
* add another sandybridge alias.Chris Lattner2011-06-091-0/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132772 91177308-0d34-0410-b5e6-96231b3b80d8
* Temporarily revert 132764 to see if it fixes the Windows buildbot.Eric Christopher2011-06-092-61/+0
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132771 91177308-0d34-0410-b5e6-96231b3b80d8
* Have the JIT tutorial use IRBuilder for the IR.Eric Christopher2011-06-091-8/+17
| | | | | | | Patch by Jake Waskett! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132770 91177308-0d34-0410-b5e6-96231b3b80d8
* Initial support for inline asm memory operand constraints.Akira Hatanaka2011-06-093-0/+51
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132768 91177308-0d34-0410-b5e6-96231b3b80d8
* Remove a vacuous condition.Cameron Zwarich2011-06-091-3/+1
| | | | git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132767 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix PR10104 by adding a bounds check on a vector element access check. It wasCameron Zwarich2011-06-092-4/+9
| | | | | | | | assuming that all offsets are legal vector accesses, and thus trying to access the float member of { <2 x float>, float } as the 3rd element of the first member. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132766 91177308-0d34-0410-b5e6-96231b3b80d8
* If the alignment of the byval argument is greater than the alignmentEric Christopher2011-06-092-0/+61
| | | | | | | | | | of the frame then increase the maximum alignment of the frame to match. Fixes PR6965 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132764 91177308-0d34-0410-b5e6-96231b3b80d8
* Add a parameter to CCState so that it can access the MachineFunction.Eric Christopher2011-06-0821-186/+203
| | | | | | | | | No functional change. Part of PR6965 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132763 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix an assymmetry between ConvertScalar_ExtractValue and ↵Cameron Zwarich2011-06-082-3/+64
| | | | | | | | | | ConvertScalar_InsertValue. The former was using the size of the entire alloca, whereas the latter was correctly using the allocated size of the immediate type being converted (which may differ from the size of the alloca). This fixes PR10082. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132759 91177308-0d34-0410-b5e6-96231b3b80d8
* Fix bug in lowering of DYNAMIC_STACKALLOC nodes. The correct offset of theAkira Hatanaka2011-06-086-37/+139
| | | | | | | | | dynamically allocated stack area was not set. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@132758 91177308-0d34-0410-b5e6-96231b3b80d8