summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Add diagnostics for bitfields.Anders Carlsson2008-12-064-20/+59
| | | | llvm-svn: 60628
* Fix invalid bit-field.Anders Carlsson2008-12-061-1/+1
| | | | llvm-svn: 60627
* Simplify some diagnostics.Anders Carlsson2008-12-062-11/+11
| | | | llvm-svn: 60626
* Changed a 'FIXME' into new comment. Added a test caseFariborz Jahanian2008-12-061-1/+3
| | | | | | testing declaration of properties in categories. llvm-svn: 60625
* some random notes.Chris Lattner2008-12-061-0/+97
| | | | llvm-svn: 60624
* Minor cleanup. Use dyn_cast, not isa/cast pairs. No functionality change.Nick Lewycky2008-12-061-5/+5
| | | | llvm-svn: 60623
* Add bandaid transfer function support for assignments involving ObjCKVCRefExpr.Ted Kremenek2008-12-061-0/+7
| | | | llvm-svn: 60622
* Clean up some ARM GV asm printing out; minor fixes to match what gcc does.Evan Cheng2008-12-066-21/+74
| | | | llvm-svn: 60621
* Patch to diagnose a variety of misuse of propertyFariborz Jahanian2008-12-066-8/+50
| | | | | | | attributes. Example would be, readonly, assign or assign, copy, etc. llvm-svn: 60620
* Reimplement the inner loop of DSE. It now uniformly uses getDependence(),Chris Lattner2008-12-062-84/+51
| | | | | | | | doesn't do its own local caching, and is slightly more aggressive about free/store dse (see testcase). This eliminates the last external client of MemDep::getDependenceFrom(). llvm-svn: 60619
* Add support for calls to dependent names within templates, e.g.,Douglas Gregor2008-12-0612-14/+140
| | | | | | | | | | | | | | | | | | template<typename T> void f(T x) { g(x); // g is a dependent name, so don't even bother to look it up g(); // error: g is not a dependent name } Note that when we see "g(", we build a CXXDependentNameExpr. However, if none of the call arguments are type-dependent, we will force the resolution of the name "g" and replace the CXXDependentNameExpr with its result. GCC actually produces a nice error message when you make this mistake, and even offers to compile your code with -fpermissive. I'll do the former next, but I don't plan to do the latter. llvm-svn: 60618
* Don't use plain %x to print pointer values. I had changed it from %pDan Gohman2008-12-051-1/+2
| | | | | | | | | since %p isn't formatted consistently, but obviously plain %x is wrong. PRIxPTR with a cast to uintptr_t would work here, but that requires inconvenient build-system changes. %lu works on all current and foreseable future hosts. llvm-svn: 60616
* Introduce basic support for dependent types, type-dependentDouglas Gregor2008-12-0518-66/+469
| | | | | | | | | | | | expressions, and value-dependent expressions. This permits us to parse some template definitions. This is not a complete solution; we're missing type- and value-dependent computations for most of the expression types, and we're missing checks for dependent types and type-dependent expressions throughout Sema. llvm-svn: 60615
* Fix test to pass on Linux.Dale Johannesen2008-12-051-1/+1
| | | | llvm-svn: 60614
* Fixed a comment.Fariborz Jahanian2008-12-051-4/+4
| | | | llvm-svn: 60611
* This test checks for duplicate implementation of the same Fariborz Jahanian2008-12-056-6/+118
| | | | | | | | property. It also checks for duplicate use of the same ivar in two different iproperty implementations. It also caught an error for a test case used in CodeGen :). llvm-svn: 60610
* Forgot a file.Dale Johannesen2008-12-051-0/+6
| | | | llvm-svn: 60609
* Make LoopStrengthReduce smarter about hoisting things out ofDale Johannesen2008-12-056-61/+212
| | | | | | | | | | | loops when they can be subsumed into addressing modes. Change X86 addressing mode check to realize that some PIC references need an extra register. (I believe this is correct for Linux, if not, I'm sure someone will tell me.) llvm-svn: 60608
* Make a few major changes to memdep and its clients:Chris Lattner2008-12-055-183/+175
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 1. Merge the 'None' result into 'Normal', making loads and stores return their dependencies on allocations as Normal. 2. Split the 'Normal' result into 'Clobber' and 'Def' to distinguish between the cases when memdep knows the value is produced from when we just know if may be changed. 3. Move some of the logic for determining whether readonly calls are CSEs into memdep instead of it being in GVN. This still leaves verification that the arguments are hte same to GVN to let it know about value equivalences in different contexts. 4. Change memdep's call/call dependency analysis to use getModRefInfo(CallSite,CallSite) instead of doing something very weak. This only really matters for things like DSA, but someday maybe we'll have some other decent context sensitive analyses :) 5. This reimplements the guts of memdep to handle the new results. 6. This simplifies GVN significantly: a) readonly call CSE is slightly simpler b) I eliminated the "getDependencyFrom" chaining for load elimination and load CSE doesn't have to worry about volatile (they are always clobbers) anymore. c) GVN no longer does any 'lastLoad' caching, leaving it to memdep. 7. The logic in DSE is simplified a bit and sped up. A potentially unsafe case was eliminated. llvm-svn: 60607
* Demangle and pretty-print symbols in internal backtraces. Patch byDan Gohman2008-12-051-0/+44
| | | | | | Wesley Peck, with a few fixes by me. llvm-svn: 60605
* Revert invalid r60393. It causes llvm-gcc bootstrap fails in release builds.Anton Korobeynikov2008-12-051-7/+2
| | | | | | See PR3160 for details llvm-svn: 60604
* This test also requires -mattr=+sse41.Evan Cheng2008-12-051-1/+1
| | | | llvm-svn: 60601
* Make it illegal to call getDependency* on non-memory instructionsChris Lattner2008-12-052-4/+6
| | | | | | like binary operators. llvm-svn: 60600
* Fixed a test case. Added a test case showing property setter'sFariborz Jahanian2008-12-052-0/+21
| | | | | | type mismatch (related to my last patch). llvm-svn: 60599
* (instance/class) Method type checking between class and its implementation.Fariborz Jahanian2008-12-055-24/+88
| | | | | | | (instance/class) Method type checking between category and its implementation. And a test case for all. llvm-svn: 60598
* Representation of template type parameters and non-type templateDouglas Gregor2008-12-0523-27/+448
| | | | | | | | | | | | | | | parameters, with some semantic analysis: - Template parameters are introduced into template parameter scope - Complain about template parameter shadowing (except in Microsoft mode) Note that we leak template parameter declarations like crazy, a problem we'll remedy once we actually create proper declarations for templates. Next up: dependent types and value-dependent/type-dependent expressions. llvm-svn: 60597
* Reason #3 from 60595 doesn't hold true. If we can fold a PIC load from ↵Evan Cheng2008-12-052-11/+11
| | | | | | constpool into a use, the rewrite happens at time of spill (not in VirtRegMap). Later on, if the GlobalBaseReg is spilled, the spiller can see the use uses GlobalBaseReg and do the right thing. llvm-svn: 60596
* Effectively undo 60461 in PIC mode which simply transform V_SET0 / ↵Evan Cheng2008-12-052-1/+244
| | | | | | | | | | V_SETALLONES into a load from constpool in order to fold into restores. This is not safe to do when PIC base is being used for a number of reasons: 1. GlobalBaseReg may have been spilled. 2. It may not be live at the use. 3. Spiller doesn't know this is happening so it won't prevent GlobalBaseReg from being spilled later (That by itself is a nasty hack. It's needed because we don't insert the reload until later). llvm-svn: 60595
* Fix test/Transforms/GVN/pre-load.llChris Lattner2008-12-052-2/+2
| | | | llvm-svn: 60594
* Fixed <rdar://problem/6213808> clang ObjC rewriter: @finally is not always ↵Steve Naroff2008-12-052-1/+49
| | | | | | executed llvm-svn: 60593
* Fix comment.Evan Cheng2008-12-051-1/+1
| | | | llvm-svn: 60592
* Use VerifyIntegerConstantExpression instead of isIntegerConstantExpr. Fixes ↵Anders Carlsson2008-12-053-4/+18
| | | | | | PR2963 llvm-svn: 60591
* The use of the construct:Cedric Venet2008-12-051-12/+12
| | | | | | | | for(Type1 B = ...;;) { Type2 B ; ... } is bad: code is hard to read and VS VS don't like it (it ignore the second declaration of B). This patch fix the problem in tablegen. Please don't write code like this. llvm-svn: 60590
* Make IsValueFullyAvailableInBlock safe.Chris Lattner2008-12-051-14/+60
| | | | llvm-svn: 60588
* add a new pop_back_val method which returns the value popped. This isChris Lattner2008-12-051-0/+6
| | | | | | | heretical from a STL standpoint, but is oh-so-useful for things that can't throw exceptions when copied, like, well, everything in LLVM. llvm-svn: 60587
* Drop the reg argument to isRegReDefinedByTwoAddr, which was redundant.Dan Gohman2008-12-055-8/+9
| | | | llvm-svn: 60586
* Update comments. There is no getArgumentAccesses.Dan Gohman2008-12-051-4/+4
| | | | llvm-svn: 60585
* Teach StackSlotColoring to update MachineMemOperands whenDan Gohman2008-12-051-3/+20
| | | | | | | changing the stack slots on an instruction, to keep them consistent with the actual memory addresses. llvm-svn: 60584
* Ignore IMPLICIT_DEF instructions when computing physreg liveness.Dan Gohman2008-12-051-0/+7
| | | | | | | | | | While they appear to provide a normal clobbering def, they don't in the case of the awkward IMPLICIT_DEF+INSERT_SUBREG idiom. It would be good to change INSERT_SUBREG; until then, this change allows post-regalloc scheduling to cope in a mildly conservative way. llvm-svn: 60583
* This wasn't such a good idea after all as it broke some tests.Anders Carlsson2008-12-051-10/+1
| | | | llvm-svn: 60582
* Handle __builtin___CFStringMakeConstantString in Expr::Evaluate.Anders Carlsson2008-12-051-1/+10
| | | | llvm-svn: 60581
* Make Sema::CheckForConstantInitializer use Expr::Evaluate. This fixes PR3130.Anders Carlsson2008-12-053-1/+13
| | | | llvm-svn: 60580
* Change the implementation of symbol_iterator to not use a union and rely on ↵Ted Kremenek2008-12-052-11/+14
| | | | | | any details of SymbolRef's implementation. llvm-svn: 60579
* Add SymbolRef::print() and have SymbolicRegion::print() use this method ↵Ted Kremenek2008-12-053-1/+13
| | | | | | instead of calling SymbolRef::getNumber(). llvm-svn: 60578
* Use trait-based profiling of SymbolRefs, avoiding calling getNumber() (which ↵Ted Kremenek2008-12-051-1/+1
| | | | | | will soon be removed). llvm-svn: 60577
* Remove (unused) RegionExtent and subclasses. Extents are now represented ↵Ted Kremenek2008-12-051-79/+0
| | | | | | easily using SVals. llvm-svn: 60576
* Rename SymbolID to SymbolRef. This is a precursor to some overhauling of ↵Ted Kremenek2008-12-0519-149/+149
| | | | | | the representation of symbolic values. llvm-svn: 60575
* Rename: FindContext -> FindDeclVisibleInContext.Zhongxing Xu2008-12-052-7/+8
| | | | llvm-svn: 60574
* Patch for diagnosing type mismatch between Fariborz Jahanian2008-12-053-13/+31
| | | | | | | methods in class and its implementation. This is work in progress. llvm-svn: 60573
* Remove SymbolDataContentsOf (unused).Ted Kremenek2008-12-052-54/+2
| | | | llvm-svn: 60572
OpenPOWER on IntegriCloud