summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* s/A Few Coding Standards/LLVM Coding Standards/gMisha Brukman2008-12-101-2/+2
| | | | llvm-svn: 60859
* Added a warning when referencing an if's condition variable in theDouglas Gregor2008-12-107-2/+106
| | | | | | | | | | | | | | | "else" clause, e.g., if (int X = foo()) { } else { if (X) { // warning: X is always zero in this context } } Fixes rdar://6425550 and lets me think about something other than DeclContext. llvm-svn: 60858
* If ADD, SUB, or MUL have an overflow bit that's used, don't do transformation onBill Wendling2008-12-102-4/+51
| | | | | | | them. The DAG combiner expects that nodes that are transformed have one value result. llvm-svn: 60857
* The "real" fix for <rdar://problem/6424347> clang on xcode: Assertion ↵Steve Naroff2008-12-102-32/+35
| | | | | | | | failed: (0 && "unexpected type"), function mergeTypes, Commit r60845 was premature. llvm-svn: 60852
* Preliminary ARM debug support based on patch by Mikael of FlexyCore.Evan Cheng2008-12-104-20/+57
| | | | llvm-svn: 60851
* Some code clean up.Evan Cheng2008-12-101-12/+14
| | | | llvm-svn: 60850
* Fix PR clang/3175: CheckAddressOfOperand does not handle references to class ↵Douglas Gregor2008-12-102-1/+35
| | | | | | vars llvm-svn: 60849
* Some cleanups to the dependent-types commit, as suggested by SebastianDouglas Gregor2008-12-102-41/+37
| | | | llvm-svn: 60848
* Fix <rdar://problem/6424347> clang on xcode: Assertion failed: (0 && ↵Steve Naroff2008-12-102-27/+80
| | | | | | "unexpected type"), function mergeTypes, llvm-svn: 60845
* Only perform SETO/SETC to JO/JC conversion if extractvalue is coming from an ↵Bill Wendling2008-12-101-35/+50
| | | | | | arithmetic with overflow instruction. llvm-svn: 60844
* Declare PerIDCache as IdentifierInfo** instead of void*. This is just ↵Ted Kremenek2008-12-102-4/+5
| | | | | | cleaner. No performance change. llvm-svn: 60843
* Fix <rdar://problem/6418623> Bogus block type compatibility warning.Steve Naroff2008-12-103-2/+43
| | | | llvm-svn: 60842
* fix typo. thanks Baldrick for noticingNuno Lopes2008-12-101-1/+1
| | | | llvm-svn: 60841
* add gcc 4.1.2 from redhat to the list of broken compilersNuno Lopes2008-12-101-0/+2
| | | | llvm-svn: 60840
* Fix regression caused by fixing <rdar://problem/6429113> clang ObjC ↵Steve Naroff2008-12-101-1/+1
| | | | | | rewriter: crash rewriting file with Blocks and properties llvm-svn: 60839
* Update these instructions to the 2.4 release.Duncan Sands2008-12-101-7/+7
| | | | llvm-svn: 60838
* For amusement, implement SADDO, SSUBO, UADDO, USUBODuncan Sands2008-12-103-19/+122
| | | | | | | | | for promoted integer types, eg: i16 on ppc-32, or i24 on any platform. Complete support for arbitrary precision integers would require handling expanded integer types, eg: i128, but I couldn't be bothered. llvm-svn: 60834
* Mention the Ada and Fortran front-ends.Duncan Sands2008-12-101-2/+2
| | | | llvm-svn: 60833
* Don't dereference the end() iterator. This wasDuncan Sands2008-12-101-2/+3
| | | | | | | causing a bunch of failures when running "make ENABLE_EXPENSIVE_CHECKS=1 check". llvm-svn: 60832
* Added a little more information that vector shifts require vector shift amount.Mon P Wang2008-12-101-4/+9
| | | | llvm-svn: 60831
* Use a scoped object to manage entry/exit from a parser scope rather than ↵Douglas Gregor2008-12-109-90/+108
| | | | | | explicitly calling EnterScope/ExitScope llvm-svn: 60830
* Fixed a bug when trying to optimize a extract vector element of aMon P Wang2008-12-102-1/+15
| | | | | | bit convert that changes the number of elements of a shuffle. llvm-svn: 60829
* Fix MachineCodeEmitter to use uintptr_t instead of intptr_t. This avoids ↵Evan Cheng2008-12-1010-64/+76
| | | | | | some overflow issues. Patch by Thomas Jablin. llvm-svn: 60828
* Append an extra newline to the module inline asm if it's not empty.Anders Carlsson2008-12-101-0/+5
| | | | llvm-svn: 60827
* Whitespace changes.Bill Wendling2008-12-102-3/+2
| | | | llvm-svn: 60826
* Rewrite instructions for configuring external testsDale Johannesen2008-12-101-25/+17
| | | | | | to reflect reality. llvm-svn: 60825
* Fix a bug introduced by r59265. If lazy compilation is disabled, return ↵Evan Cheng2008-12-101-1/+1
| | | | | | actual function ptr instead of ptr to stub if function is already compiled. llvm-svn: 60822
* move an entry, add some notes, remove a completed item (IMPLICIT_DEF)Chris Lattner2008-12-101-37/+38
| | | | llvm-svn: 60821
* Allow basicaa to walk through geps with identical indices in Chris Lattner2008-12-102-18/+48
| | | | | | | | | | | parallel, allowing it to decide that P/Q must alias if A/B must alias in things like: P = gep A, 0, i, 1 Q = gep B, 0, i, 1 This allows GVN to delete 62 more instructions out of 403.gcc. llvm-svn: 60820
* Updated checker build.Ted Kremenek2008-12-101-1/+1
| | | | llvm-svn: 60819
* Whitespace fixes.Bill Wendling2008-12-101-14/+12
| | | | llvm-svn: 60818
* Update CalcLatency to work in terms of edge latencies, rather thanDan Gohman2008-12-102-27/+6
| | | | | | | | node latencies. Use CalcLatency instead of manual code in CalculatePriorities to keep it consistent. Previously it computed slightly different results. llvm-svn: 60817
* Patch to allow a getter call using property dot-syntax notation.Fariborz Jahanian2008-12-102-1/+19
| | | | llvm-svn: 60816
* Fix a couple of Dwarf bugs.Evan Cheng2008-12-104-9/+79
| | | | | | | - Emit DW_AT_byte_size for struct and union of size zero. - Emit DW_AT_declaration for forward type declaration. llvm-svn: 60812
* CellSPU:Scott Michel2008-12-109-84/+286
| | | | | | | | | - Fix bug 3185, with misc other cleanups. - Needed to implement SPUInstrInfo::InsertBranch(). CAUTION: Not sure what gets or needs to get passed to InsertBranch() to insert a conditional branch. This will abort for now until a good test case shows up. llvm-svn: 60811
* Modify the move emulation according to the excellent design of Howard ↵Sebastian Redl2008-12-1011-275/+307
| | | | | | Hinnant. Makes for much nicer syntax when smart pointers are used consistently. Also, start converting internal argument passing of Parser to smart pointers. llvm-svn: 60809
* Fix to BasicStoreManager::getElementLValue: If the base region is a symbol, ↵Ted Kremenek2008-12-091-2/+13
| | | | | | layer an AnonTypedRegion on top of it. llvm-svn: 60808
* Implement fast-isel conversion of a branch instruction that's branching on anBill Wendling2008-12-092-0/+65
| | | | | | | | | overflow/carry from the "arithmetic with overflow" intrinsics. It searches the machine basic block from bottom to top to find the SETO/SETC instruction that is its conditional. If an instruction modifies EFLAGS before it reaches the SETO/SETC instruction, then it defaults to the normal instruction emission. llvm-svn: 60807
* Rewrite the SDep class, and simplify some of the related code.Dan Gohman2008-12-0912-376/+526
| | | | | | | | | | | | | | | | | The Cost field is removed. It was only being used in a very limited way, to indicate when the scheduler should attempt to protect a live register, and it isn't really needed to do that. If we ever want the scheduler to start inserting copies in non-prohibitive situations, we'll have to rethink some things anyway. A Latency field is added. Instead of giving each node a single fixed latency, each edge can have its own latency. This will eventually be used to model various micro-architecture properties more accurately. The PointerIntPair class and an internal union are now used, which reduce the overall size. llvm-svn: 60806
* loosen up an assertion that isn't valid when called fromChris Lattner2008-12-092-1/+27
| | | | | | | invalidateCachedPointerInfo. Thanks to Bill for sending me a testcase. llvm-svn: 60805
* Minor code simplification.Dan Gohman2008-12-091-3/+3
| | | | llvm-svn: 60804
* Prevent bogus warning on unimplemented setter/getter when userFariborz Jahanian2008-12-093-0/+27
| | | | | | has added declaration of these methods in its @interface. llvm-svn: 60803
* Add sub/mul overflow intrinsics. This currently doesn't have aBill Wendling2008-12-0915-92/+332
| | | | | | | target-independent way of determining overflow on multiplication. It's very tricky. Patch by Zoltan Varga! llvm-svn: 60800
* Teach GVN to invalidate some memdep information when it does an RAUWChris Lattner2008-12-093-2/+41
| | | | | | | | | | | | | | | | | | | | | | | | of a pointer. This allows is to catch more equivalencies. For example, the type_lists_compatible_p function used to require two iterations of the gvn pass (!) to delete its 18 redundant loads because the first pass would CSE all the addressing computation cruft, which would unblock the second memdep/gvn passes from recognizing them. This change allows memdep/gvn to catch all 18 when run just once on the function (as is typical :) instead of just 3. On all of 403.gcc, this bumps up the # reundandancies found from: 63 gvn - Number of instructions PRE'd 153991 gvn - Number of instructions deleted 50069 gvn - Number of loads deleted to: 63 gvn - Number of instructions PRE'd 154137 gvn - Number of instructions deleted 50185 gvn - Number of loads deleted +120 loads deleted isn't bad. llvm-svn: 60799
* Fix PR3117: not all nodes being legalized. TheDuncan Sands2008-12-0910-209/+510
| | | | | | | | | | | | | | | | | | | | | | | essential problem was that the DAG can contain random unused nodes which were never analyzed. When remapping a value of a node being processed, such a node may become used and need to be analyzed; however due to operands being transformed during analysis the node may morph into a different one. Users of the morphing node need to be updated, and this wasn't happening. While there I added a bunch of documentation and sanity checks, so I (or some other poor soul) won't have to scratch their head over this stuff so long trying to remember how it was all supposed to work next time some obscure problem pops up! The extra sanity checking exposed a few places where invariants weren't being preserved, so those are fixed too. Since some of the sanity checking is expensive, I added a flag to turn it on. It is also turned on when building with ENABLE_EXPENSIVE_CHECKS=1. llvm-svn: 60797
* Have BasicStoreManager::getLValueElement() have logic similar to ↵Ted Kremenek2008-12-091-2/+37
| | | | | | BasicStoreManager::getLValueField() (i.e., don't just return the 'base' as the SVal) llvm-svn: 60795
* Teach BasicAA::getModRefInfo(CallSite, CallSite) someChris Lattner2008-12-094-22/+82
| | | | | | | | | | | | | | | | | | | | | | tricks based on readnone/readonly functions. Teach memdep to look past readonly calls when analyzing deps for a readonly call. This allows elimination of a few more calls from 403.gcc: before: 63 gvn - Number of instructions PRE'd 153986 gvn - Number of instructions deleted 50069 gvn - Number of loads deleted after: 63 gvn - Number of instructions PRE'd 153991 gvn - Number of instructions deleted 50069 gvn - Number of loads deleted 5 calls isn't much, but this adds plumbing for the next change. llvm-svn: 60794
* Add testcase for commit r60781.Steve Naroff2008-12-091-0/+95
| | | | llvm-svn: 60793
* Support for implementation of property in the case whereFariborz Jahanian2008-12-097-15/+101
| | | | | | | the synthesis is in an implementation of s subclass of a super class where the property has been declared. llvm-svn: 60792
* Kick out the proof-of-concept ASTOwner and replace it with ASTOwningResultSebastian Redl2008-12-0914-233/+133
| | | | llvm-svn: 60791
OpenPOWER on IntegriCloud