summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Fix silly bug I introduce in the previous commit. Fixes debug builds.Rafael Espindola2011-06-121-3/+3
| | | | llvm-svn: 132883
* AnalyzeBranch doesn't change which successors a bb has, just the orderRafael Espindola2011-06-122-5/+11
| | | | | | | | | | | | | | | | | | we try to branch to them. Before we were creating successor lists with duplicated entries. Fixing that found a bug in isBlockOnlyReachableByFallthrough that would causes it to return the wrong answer for ----------- ... jne foo jmp bar foo: ---------- llvm-svn: 132882
* Put FrameSetup flag on x86 instructions that set up the call frame. NoCharles Davis2011-06-121-5/+13
| | | | | | | | | functionality change. Later on, we'll use the flag to emit SEH pseudo-ops that describe how the call frame was built. llvm-svn: 132880
* Revert r132871.Chad Rosier2011-06-111-1/+1
| | | | llvm-svn: 132872
* Typo.Chad Rosier2011-06-111-1/+1
| | | | llvm-svn: 132871
* Make sure to pass OpFlags into MachineInstrBuilder::addExternalSymbol; theEli Friedman2011-06-111-1/+1
| | | | | | | memcpy/memset symbol doesn't get marked up correctly in PIC modes otherwise. Should fix llvm-x86_64-linux-checks buildbot. Followup to r132864. llvm-svn: 132869
* Branch profiling: floating-point avoidance.Andrew Trick2011-06-113-54/+108
| | | | | | | | | Patch by: Jakub Staszak! Introduces BranchProbability. Changes unsigned to uint32_t all over and uint64_t only when overflow is expected. llvm-svn: 132867
* Add full x86 fast-isel support for memcpy and memset.Eli Friedman2011-06-101-9/+50
| | | | | | rdar://9431466 llvm-svn: 132864
* 80-col cleanups.Eric Christopher2011-06-101-6/+5
| | | | llvm-svn: 132863
* Initialize BasicAA's AliasCache to set it to use fewer buckets byDan Gohman2011-06-101-1/+7
| | | | | | | | default, since it usually has very few elements. This speeds up alias queries in many cases, because AliasCache.clear() doesn't have to visit as many buckets. llvm-svn: 132862
* Removed tabs. Also fixed my editor...Rafael Espindola2011-06-101-3/+2
| | | | llvm-svn: 132857
* Provide an ARMCCState subclass of CCState so that ARM clients will always setCameron Zwarich2011-06-101-17/+29
| | | | | | CallOrPrologue correctly and eliminate the existing setter. llvm-svn: 132856
* Rename the ParmContext enum values to make a bit more sense and add a smallCameron Zwarich2011-06-101-1/+1
| | | | | | comment on their meaning. llvm-svn: 132854
* Remove tabs.Cameron Zwarich2011-06-101-2/+2
| | | | llvm-svn: 132853
* Remove a pointless const_cast.Cameron Zwarich2011-06-101-1/+1
| | | | llvm-svn: 132852
* Remove duplicated test.Rafael Espindola2011-06-101-4/+3
| | | | | | Thanks Bob Wilson for noticing it! llvm-svn: 132851
* PR10092 (second try): Don't crash on a load without a momoperand; fast-isel ↵Eli Friedman2011-06-101-1/+1
| | | | | | creates loads like this. llvm-svn: 132826
* 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>. llvm-svn: 132825
* Make the optional verification step more strict.Rafael Espindola2011-06-091-1/+8
| | | | llvm-svn: 132822
* Avoid a gcc warning about multiline comments.Rafael Espindola2011-06-091-6/+6
| | | | llvm-svn: 132821
* 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. llvm-svn: 132816
* 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. llvm-svn: 132815
* Also consider phi nodes when deciding if a register is live out.Rafael Espindola2011-06-091-10/+34
| | | | llvm-svn: 132814
* A CCState was being created without setting whether it is in the Call or ↵Cameron Zwarich2011-06-091-0/+1
| | | | | | | | | | | 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. llvm-svn: 132811
* Change this DAGCombine to build AND of SHR instead of SHR of AND; this ↵Eli Friedman2011-06-091-15/+16
| | | | | | | | 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. llvm-svn: 132809
* 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. llvm-svn: 132806
* A PHI in this basic block is a use in another basic block.Rafael Espindola2011-06-091-1/+1
| | | | llvm-svn: 132805
* When deleting a basic block, remove call edges only for non-intrinsics.John McCall2011-06-091-1/+1
| | | | llvm-svn: 132803
* Fix emission of PPC64 assembler on non-darwin platforms by splittingRoman Divacky2011-06-094-17/+20
| | | | | | | | VK_PPC_{HA,LO}16 into darwin and gas variants. Darwin wants {ha,lo}16(symbol) while gnu as wants symbol@{ha,l}. llvm-svn: 132802
* SplitCriticalEdge can sometimes split the edge from an invoke to a landingJohn McCall2011-06-091-28/+184
| | | | | | | | | | | | 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. llvm-svn: 132799
* Refactor some checks into shouldTailDuplicate. Update comments.Rafael Espindola2011-06-091-18/+29
| | | | | | No functionality change. llvm-svn: 132798
* Teach the CallGraph to ignore calls to intrinsics.John McCall2011-06-093-44/+10
| | | | llvm-svn: 132797
* Revert 132789; it breaks tests. My mistake.Eli Friedman2011-06-091-4/+0
| | | | llvm-svn: 132795
* Remove an uneeded switch - Turns out reloc results are identical w/o the ↵Jason W Kim2011-06-091-12/+1
| | | | | | switch. (face+palm) llvm-svn: 132790
* 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. llvm-svn: 132789
* 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. llvm-svn: 132781
* Speculatively revert 132758 and 132768 to try to fix the Windows buildbots.Eric Christopher2011-06-097-92/+31
| | | | llvm-svn: 132777
* Recommit r132764 since it didn't cause the windows buildbot failures.Eric Christopher2011-06-091-0/+2
| | | | llvm-svn: 132776
* Improve the handling of available_externally and llvm.global_ctors.Rafael Espindola2011-06-091-4/+16
| | | | llvm-svn: 132775
* Enable printf() to iprintf() optimization for the TCE target.Duncan Sands2011-06-091-2/+2
| | | | | | Patch by Pekka Jaaskelainen. llvm-svn: 132774
* add another sandybridge alias.Chris Lattner2011-06-091-0/+1
| | | | llvm-svn: 132772
* Temporarily revert 132764 to see if it fixes the Windows buildbot.Eric Christopher2011-06-091-2/+0
| | | | llvm-svn: 132771
* Initial support for inline asm memory operand constraints.Akira Hatanaka2011-06-092-0/+28
| | | | llvm-svn: 132768
* Remove a vacuous condition.Cameron Zwarich2011-06-091-3/+1
| | | | llvm-svn: 132767
* Fix PR10104 by adding a bounds check on a vector element access check. It wasCameron Zwarich2011-06-091-1/+4
| | | | | | | | 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. llvm-svn: 132766
* If the alignment of the byval argument is greater than the alignmentEric Christopher2011-06-091-0/+2
| | | | | | | | | of the frame then increase the maximum alignment of the frame to match. Fixes PR6965 llvm-svn: 132764
* Add a parameter to CCState so that it can access the MachineFunction.Eric Christopher2011-06-0819-183/+195
| | | | | | | | No functional change. Part of PR6965 llvm-svn: 132763
* Fix an assymmetry between ConvertScalar_ExtractValue and ↵Cameron Zwarich2011-06-081-3/+4
| | | | | | | | | | 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. llvm-svn: 132759
* Fix bug in lowering of DYNAMIC_STACKALLOC nodes. The correct offset of theAkira Hatanaka2011-06-085-31/+64
| | | | | | dynamically allocated stack area was not set. llvm-svn: 132758
* Reorganize code in MipsTargetLowering::LowerCall to improve readability.Akira Hatanaka2011-06-081-38/+36
| | | | llvm-svn: 132756
OpenPOWER on IntegriCloud