summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Convert a few more backedge-taken count functions to use BackedgeTakenInfo.Dan Gohman2010-02-242-17/+16
| | | | llvm-svn: 97042
* Speculatively revert r97011, "Re-apply 96540 and 96556 with fixes.", again inDaniel Dunbar2010-02-248-185/+35
| | | | | | the hopes of fixing PPC bootstrap. llvm-svn: 97040
* Generate correct vcall offsets when we have a primary virtual base that is ↵Anders Carlsson2010-02-242-7/+61
| | | | | | not a primary base in the complete class hierarchy. llvm-svn: 97039
* References to const int parameters with ICE default arguments are not ICEs.John McCall2010-02-242-2/+14
| | | | | | Fixes PR6373. llvm-svn: 97037
* Reapply r97010, the speculative revert failed.Daniel Dunbar2010-02-244-50/+37
| | | | llvm-svn: 97036
* Make this test portable to ABIs that use sret.John McCall2010-02-241-1/+1
| | | | llvm-svn: 97035
* lets not break the old isel.Chris Lattner2010-02-241-1/+0
| | | | llvm-svn: 97034
* Since the new instruction selector now works, I don't need to keepChris Lattner2010-02-242-8/+7
| | | | | | | | the old one around for comparative purposes: have the ENABLE_NEW_ISEL #define (which is not enabled on mainline) stop emitting the old isel at all, yay for build time win. llvm-svn: 97033
* Fix test case and convert fully to FileCheck.John McCall2010-02-241-6/+6
| | | | llvm-svn: 97032
* implement a simple proof-of-concept optimization forChris Lattner2010-02-246-8/+92
| | | | | | | | the new isel: fold movechild+record+moveparent into a single recordchild N node. This shrinks the X86 table from 125443 to 117502 bytes. llvm-svn: 97031
* Canonicalize parameter and return types before computing ABI info. EliminatesJohn McCall2010-02-246-72/+91
| | | | | | | | | | | a common source of oddities and, in theory, removes some redundant ABI computations. Also fixes a miscompile I introduced yesterday by refactoring some code and causing a slightly different code path to be taken that didn't perform *parameter* type canonicalization, just normal type canonicalization; this in turn caused a bit of ABI code to misfire because it was looking for 'double' or 'float' but received 'const float'. llvm-svn: 97030
* The new isel passes all tests, time to start making it go fast.Chris Lattner2010-02-244-3/+29
| | | | | | | Also add an easy macro at the top of DAGISelEmitter.cpp to enable it. Lets see if I can avoid accidentally turning it on :) llvm-svn: 97029
* Add svn:ignore properties.Dan Gohman2010-02-240-0/+0
| | | | llvm-svn: 97028
* Speculatively revert r97010, "Add an argument to PHITranslateValue to specifyDaniel Dunbar2010-02-244-37/+50
| | | | | | the DominatorTree. ...", in hopes of restoring poor old PPC bootstrap. llvm-svn: 97027
* When forming SSE min and max nodes for UGE and ULE comparisons, it'sDan Gohman2010-02-246-23/+547
| | | | | | | | | | | necessary to swap the operands to handle NaN and negative zero properly. Also, reintroduce logic for checking for NaN conditions when forming SSE min and max instructions, fixed to take into consideration NaNs and negative zeros. This allows forming min and max instructions in more cases. llvm-svn: 97025
* Fix indentation.Dan Gohman2010-02-241-10/+10
| | | | llvm-svn: 97024
* Change the scheduler from adding nodes in allnodes orderChris Lattner2010-02-245-109/+18
| | | | | | | | | | | | | | | | | | to adding them in a determinstic order (bottom up from the root) based on the structure of the graph itself. This updates tests for some random changes, interesting bits: CodeGen/Blackfin/promote-logic.ll no longer crashes. I have no idea why, but that's good right? CodeGen/X86/2009-07-16-LoadFoldingBug.ll also fails, but now compiles to have one fewer constant pool entry, making the expected load that was being folded disappear. Since it is an unreduced mass of gnast, I just removed it. This fixes PR6370 llvm-svn: 97023
* Remove an unused variable. Was this intentional?Chandler Carruth2010-02-241-1/+0
| | | | llvm-svn: 97022
* The new isel was not properly handling patterns that coveredChris Lattner2010-02-245-15/+112
| | | | | | | | | internal nodes with flag results. Record these with a new OPC_MarkFlagResults opcode and use this to update the interior nodes' flag results properly. This fixes CodeGen/X86/i256-add.ll with the new isel. llvm-svn: 97021
* Add comments.Zhongxing Xu2010-02-241-0/+2
| | | | llvm-svn: 97020
* add node #'s to debug dumps.Chris Lattner2010-02-241-3/+3
| | | | llvm-svn: 97019
* Added for disassembly VST1 (multiple single elements) which stores elements toJohnny Chen2010-02-241-0/+35
| | | | | | | | | memory from three or four registers and VST2 (multiple two-element structures) which stores to memory from two double-spaced registers. A8.6.391 & A8.6.393 llvm-svn: 97018
* Changed the table generator so that the X86Sean Callanan2010-02-241-3/+4
| | | | | | disassembler never recognizes InitReg instructions. llvm-svn: 97017
* Disable one test case because of the inconsistent results it is giving onTed Kremenek2010-02-241-1/+3
| | | | | | Windows and Mac OS X. Will investigate later. llvm-svn: 97016
* When we encounter a function-specific attribute in a declaration specifier,Charles Davis2010-02-242-5/+13
| | | | | | | apply it only to the function itself, and never to the return type. Fixes part of PR6408. llvm-svn: 97015
* Always add CallExpr as block-level expression. Inline-based interproceduralZhongxing Xu2010-02-243-5/+5
| | | | | | analysis needs this. llvm-svn: 97014
* handle very large call frames when require SPAdj != 0 for Thumb1Jim Grosbach2010-02-242-4/+4
| | | | llvm-svn: 97013
* LowerCall() should always do getCopyFromReg() to reference the stack pointer.Jim Grosbach2010-02-242-6/+2
| | | | | | | Machine instruction selection is much happier when operands are in virtual registers. llvm-svn: 97012
* Re-apply 96540 and 96556 with fixes.Evan Cheng2010-02-248-35/+185
| | | | llvm-svn: 97011
* Add an argument to PHITranslateValue to specify the DominatorTree. If thisBob Wilson2010-02-244-50/+37
| | | | | | | | | | | | | | | | | | | | argument is non-null, pass it along to PHITranslateSubExpr so that it can prefer using existing values that dominate the PredBB, instead of just blindly picking the first equivalent value that it finds on a uselist. Also when the DominatorTree is specified, have PHITranslateValue filter out any result that does not dominate the PredBB. This is basically just refactoring the check that used to be in GetAvailablePHITranslatedSubExpr and also in GVN. Despite my initial expectations, this change does not affect the results of GVN for any testcases that I could find, but it should help compile time. Before this change, if PHITranslateSubExpr picked a value that does not dominate, PHITranslateWithInsertion would then insert a new value, which GVN would later determine to be redundant and would replace. By picking a good value to begin with, we save GVN the extra work of inserting and then replacing a new value. llvm-svn: 97010
* Correct radar no.Fariborz Jahanian2010-02-241-1/+1
| | | | llvm-svn: 97009
* Fix rewriting of a method when return type isFariborz Jahanian2010-02-242-0/+29
| | | | | | a block pointer type. Fixes radar 7682149. llvm-svn: 97008
* DIV8r must define %AX since X86DAGToDAGISel::Select() sometimes uses itJakob Stoklund Olesen2010-02-242-1/+21
| | | | | | instead of %AL/%AH. llvm-svn: 97006
* Add support for '%C' and '%S' printf conversion specifiers.Ted Kremenek2010-02-243-25/+56
| | | | llvm-svn: 97005
* fix X86/uint_to_fp-2.ll, only fold loads when they have aChris Lattner2010-02-231-7/+28
| | | | | | single use. llvm-svn: 97003
* More Sema check for ivars in class continuation.Fariborz Jahanian2010-02-234-15/+64
| | | | llvm-svn: 97002
* make selectnodeto set the nodeid to -1. This makes it more akin toChris Lattner2010-02-231-1/+4
| | | | | | creating a new node then replacing uses. llvm-svn: 97000
* Emit debug info for VectorType.Devang Patel2010-02-233-2/+35
| | | | llvm-svn: 96999
* fix buildbot failure on windows by slightly trimming test output to ignore ↵Blaine Garst2010-02-231-2/+2
| | | | | | temporary name llvm-svn: 96998
* Remember to handle sub-registers when moving imp-defs to a rematted instruction.Jakob Stoklund Olesen2010-02-232-2/+66
| | | | llvm-svn: 96995
* Keep track of phi join registers explicitly in LiveVariables.Jakob Stoklund Olesen2010-02-235-52/+193
| | | | | | | | Previously, LiveIntervalAnalysis would infer phi joins by looking for multiply defined registers. That doesn't work if the phi join is implicitly defined in all but one of the predecessors. llvm-svn: 96994
* Add support for the weakref attribute. We still produce "alias weak" as ↵Rafael Espindola2010-02-2311-13/+144
| | | | | | llvm-gcc does, but are more strict on what uses of weakref we accept. llvm-svn: 96992
* Fix rev 96389 by restricting the xform to mask that's either signbit or max ↵Evan Cheng2010-02-231-4/+9
| | | | | | signed value. llvm-svn: 96990
* Unconditionally support block introspection data in a new field at the endBlaine Garst2010-02-237-59/+140
| | | | | | | | | | | | | | | of the block descriptor field. This field is the ObjC style @encode signature of the implementation function, and was to this point conditionally provided in the block literal data structure. That provisional support is removed. Additionally, eliminate unused enumerations for the block literal flags field. The first shipping ABI unconditionally set (1<<29) but this bit is unused by the runtime, so the second ABI will unconditionally have (1<<30) set so that the runtime can in fact distinguish whether the additional data is present or not. llvm-svn: 96989
* This is the second patch to allow x86 code to be aligned with optimal nops.Kevin Enderby2010-02-231-2/+47
| | | | | | | | | | With the compiler changed to use EmitCodeAlignment() it does change the functionality. But X86 assembly code assembled with llvm-mc does not change its output. For that we will eventually change the assembler frontend to detect a '.align x, 0x90' when used in a section that 'hasInstructions' and use EmitCodeAlignment, but will wait until we have better target hooks. llvm-svn: 96988
* Fixes a rewriting of qualified-id type which exposed a biggerFariborz Jahanian2010-02-232-5/+21
| | | | | | rewriting problem. Fixes radar 7680953. llvm-svn: 96987
* Dead emit dead store warnings when assigning nil to an ObjC objectTed Kremenek2010-02-232-1/+9
| | | | | | | pointer (for defensive programming). This matches the behavior with assigning NULL to a regular pointer. Fixes <rdar://problem/7631278>. llvm-svn: 96985
* Don't mark call instruction as a barrier.Richard Osborne2010-02-231-1/+1
| | | | llvm-svn: 96983
* Roll back r96959 again.Jeffrey Yasskin2010-02-2313-169/+12
| | | | llvm-svn: 96981
* Added for disassembly VLD1 (multiple single elements) which loads memory intoJohnny Chen2010-02-231-0/+33
| | | | | | | | | three or four registers and VLD2 (multiple two-element structures) which loads memory into two double-spaced registers. A8.6.307 & A8.6.310 llvm-svn: 96980
OpenPOWER on IntegriCloud