summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* When in code-completion, skip obj-c method bodies for speed up.Argyrios Kyrtzidis2011-01-035-14/+37
| | | | llvm-svn: 122781
* Add a test that is currently failingDouglas Gregor2011-01-031-0/+14
| | | | llvm-svn: 122780
* Don't pattern match "clang-" as it may be part of a tool name with aDavid Greene2011-01-031-2/+2
| | | | | | triple suffix. llvm-svn: 122779
* Fix more stack layout issues in the MBlaze backend.Wesley Peck2011-01-033-25/+40
| | | | llvm-svn: 122778
* Stub out a new updating interface to AliasAnalysis, allowing stateful ↵Owen Anderson2011-01-033-1/+40
| | | | | | | | | analyses to be informed when a pointer value has potentially become escaping. Implementations can choose to either fall back to conservative responses for that value, or may recompute their analysis to accomodate the change. llvm-svn: 122777
* Properly rebuild pack expansions whose pattern is a non-type templateDouglas Gregor2011-01-035-6/+26
| | | | | | | argument. As part of this, be more careful when determining if there are any parameter packs that cannot be expanded. llvm-svn: 122776
* Unwrap template argument packs when checking the template arguments ofDouglas Gregor2011-01-033-32/+62
| | | | | | | a class template partial specialiation, and look through pack expansions when checking the conditions of C++0x [temp.class.spec]p8. llvm-svn: 122774
* We can count properly.Owen Anderson2011-01-031-1/+1
| | | | llvm-svn: 122773
* fix rdar://8813415 - a miscompilation of 164.gzip that loop-idiomChris Lattner2011-01-032-0/+24
| | | | | | exposed. It turns out to be a latent bug in basicaa, scary. llvm-svn: 122772
* filecheckizeChris Lattner2011-01-031-6/+8
| | | | llvm-svn: 122771
* Fix typo of the test method name.Johnny Chen2011-01-031-1/+1
| | | | llvm-svn: 122770
* Diagnose the presence of unexpanded parameter packs within classDouglas Gregor2011-01-035-9/+42
| | | | | | template partial specialization arguments. llvm-svn: 122769
* TableGen.cmake: sometimes the .td file is not in the current directoryOscar Fuentes2011-01-031-1/+4
| | | | | | | | | | | (clang/include/clang/Basic/StmtNodes.td, for instance, is tablegenned from clang/include/clang/AST/CMakeLists.txt) so it is not contained on the list of all .td files on the current source directory which is used as the DEPENDS of the custom command. We must add the .td file to the DEPENDS list of the custom command. Otherwise some .inc files are not regenerated when the corresponding .td file changes. llvm-svn: 122768
* Updated comment.Johnny Chen2011-01-031-1/+0
| | | | llvm-svn: 122767
* Remove a couple of setters that have no callers.Argyrios Kyrtzidis2011-01-031-5/+0
| | | | llvm-svn: 122766
* Speed up code-completion by skipping function bodies.Argyrios Kyrtzidis2011-01-036-39/+30
| | | | | | | | | | | | | | When we are in code-completion mode, skip parsing of all function bodies except the one where the code-completion point resides. For big .cpp files like 'SemaExpr.cpp' the improvement makes a huge difference, in some cases cutting down code-completion time -62% ! We don't get diagnostics for the bodies though, so modify the code-completion tests that check for errors. See rdar://8814203. llvm-svn: 122765
* Implement support for pack expansions in initializer lists andDouglas Gregor2011-01-034-8/+92
| | | | | | expression lists. llvm-svn: 122764
* Fix PR8841 by checking for both semantic and lecical dependentChandler Carruth2011-01-032-1/+18
| | | | | | | contexts. This prevents -Wunused-function from firing on friend function definitions inside of class templates for example. llvm-svn: 122763
* Consider zero-length array of structs whenFariborz Jahanian2011-01-032-1/+23
| | | | | | | computing ivar layouts for objc-gc. Fixes // rdar://8800513 llvm-svn: 122762
* Refactor the tree transform's many loops over sets of expressionsDouglas Gregor2011-01-035-139/+139
| | | | | | | | | | | (transforming each in turn) into calls into one central routine (TransformExprs) that transforms a list of expressions. This refactoring is preparatory work for pack expansions whose in an expression-list. No functionality change. llvm-svn: 122761
* Simplify GVN's value expression structure, allowing the elimination of a lot of Owen Anderson2011-01-031-260/+26
| | | | | | almost-but-not-quite-identical code. No intended functionality change. llvm-svn: 122760
* stength reduce my previous patch a bit. The only instructionsChris Lattner2011-01-031-6/+9
| | | | | | | | | | | that are allowed to have metadata operands are intrinsic calls, and the only ones that take metadata currently return void. Just reject all void instructions, which should not be value numbered anyway. To future proof things, add an assert to the getHashValue impl for calls to check that metadata operands aren't present. llvm-svn: 122759
* fix PR8895: metadata operands don't have a strong use of theirChris Lattner2011-01-031-4/+10
| | | | | | | | | | nested values, so they can change and drop to null, which can change the hash and cause havok. It turns out that it isn't a good idea to value number stuff with metadata operands anyway, so... don't. llvm-svn: 122758
* Guard lazy synthesis of provisional ivars under the newFariborz Jahanian2011-01-033-4/+7
| | | | | | -fobjc-default-synthesize-properties flag. llvm-svn: 122757
* In the latest episode of "Deserializing bugs caused by accessors" the series ↵Argyrios Kyrtzidis2011-01-031-9/+9
| | | | | | | | | | reached a thrilling climax when FunctionDecl::setPure crashed a poor user's code. Remove the use of this accessor when deserializing, along with several other in the neighborhood. Fixes rdar://8759653. llvm-svn: 122756
* Fix PR8654, ensuring each branch of an #if, #elif, #else, ... chainChandler Carruth2011-01-031-1/+12
| | | | | | | | receives a PPCallback. Patch by Richard Smith. llvm-svn: 122755
* Reapply 122341 to fix PR8199 now that clang changes are in.David Greene2011-01-033-2/+50
| | | | llvm-svn: 122754
* Support lit fixes for PR8199David Greene2011-01-031-1/+1
| | | | | | | | Replace "clang++" with "clang\+\+" because we have to escape regexp special characters now. This is in preparation for changes to lit to fix PR8199. Tests will fail until the lit part gets committed. llvm-svn: 122753
* Another variadic template metafunction test case: summing values.Douglas Gregor2011-01-031-2/+16
| | | | llvm-svn: 122752
* Implement support for pack expansions whose pattern is a non-typeDouglas Gregor2011-01-0321-22/+223
| | | | | | | | | | | | | | | | | template argument (described by an expression, of course). For example: template<int...> struct int_tuple { }; template<int ...Values> struct square { typedef int_tuple<(Values*Values)...> type; }; It also lays the foundation for pack expansions in an initializer-list. llvm-svn: 122751
* Use some of the llvm cmake infraestructure. This takes care ofOscar Fuentes2011-01-031-11/+2
| | | | | | | disabling rtti and exceptions where requested. Remove some unnecessary code too. llvm-svn: 122750
* LLVMProcessSources: add .def files along with .h files to targets forOscar Fuentes2011-01-031-1/+1
| | | | | | the benefit of project-based generators (VS, XCode, etc). llvm-svn: 122749
* Consolidate template metafunction tests for variadic templates into a single ↵Douglas Gregor2011-01-032-28/+32
| | | | | | file llvm-svn: 122748
* Set LLVM_NO_RTTI and LLVM_USED_LIBS for clangStaticAnalyzerCheckersOscar Fuentes2011-01-031-0/+4
| | | | | | Patch by arrowdodger! llvm-svn: 122747
* Speed up instsimplify by about 10-15% by not bothering to retryDuncan Sands2011-01-031-8/+19
| | | | | | | InstructionSimplify on instructions that didn't change since the last time round the loop. llvm-svn: 122745
* When we attempt to create a built-in that involves a library type weDouglas Gregor2011-01-034-12/+26
| | | | | | | | | don't have access to (e.g., fprintf, which needs the library type FILE), fail with a warning and forget about the builtin entirely. Previously, we would actually provide an error, which breaks autoconf's super-lame checks for fprintf, longjmp, etc. Fixes PR8316. llvm-svn: 122744
* Undo what looks like accidental removal of an instcombine pass in r122740.Evan Cheng2011-01-031-0/+1
| | | | llvm-svn: 122743
* Switch a worklist in CodeGenPrepare to SmallVector and increase the inlineCameron Zwarich2011-01-031-2/+2
| | | | | | | | | capacity on the Visited SmallPtrSet. On 403.gcc, this is about a 4.5% speedup of CodeGenPrepare time (which itself is 10% of time spent in the backend). This is progress towards PR8889. llvm-svn: 122741
* Turn on earlycse by default. This seems to be a small performanceChris Lattner2011-01-031-1/+1
| | | | | | | | | | | | | | | | improvement in the generated code, and speeds up 'opt -std-compile-opts' compile time on 176.gcc from 24.84s to 23.2s (about 7%). This also resolves a specific code quality issue in rdar://7352081 which was generating poor code for: int t(int a, int b) { if (a & b & 1) return a & b; return 3; } llvm-svn: 122740
* Further expand what a call graph pass may do.Nick Lewycky2011-01-031-5/+3
| | | | | | | | The rationale is that after analyzing a function in the SCC, we may want to modify it in a way that requires us to update its uses (f.e. to replace the call with a constant) or its users (f.e. to call it with fewer arguments). llvm-svn: 122739
* earlycse can do trivial with-a-block dead store Chris Lattner2011-01-032-6/+48
| | | | | | | elimination as well. This deletes 60 stores in 176.gcc that largely come from bitfield code. llvm-svn: 122736
* Use a RecyclingAllocator to allocate values for MachineCSE's ScopedHashTable forCameron Zwarich2011-01-031-3/+7
| | | | | | a 28% speedup of MachineCSE time on 403.gcc. llvm-svn: 122735
* Permit CallGraphSCCPasses readonly access to the direct callers of the functionsNick Lewycky2011-01-031-2/+2
| | | | | | in their SCC as they already have with the direct callees. llvm-svn: 122734
* switch the load table to use a recycling bump pointer allocator,Chris Lattner2011-01-031-1/+4
| | | | | | speeding earlycse up by 6%. llvm-svn: 122733
* now that loads are in their own table, we can implementChris Lattner2011-01-032-1/+21
| | | | | | | store->load forwarding. This allows EarlyCSE to zap 600 more loads from 176.gcc. llvm-svn: 122732
* split loads and calls into separate tables. Loads are now just indexedChris Lattner2011-01-031-42/+74
| | | | | | by their pointer instead of using MemoryValue to wrap it. llvm-svn: 122731
* add a testcase for readonly call CSEChris Lattner2011-01-031-0/+12
| | | | llvm-svn: 122730
* various cleanups, no functionality change.Chris Lattner2011-01-031-24/+19
| | | | llvm-svn: 122729
* Add spliceFunction to the CallGraph interface. This allows users to efficientlyNick Lewycky2011-01-032-2/+25
| | | | | | | | | | update a callGraph when performing the common operation of splicing the body to a new function and updating all callers (such as via RAUW). No users yet, though this is intended for DeadArgumentElimination as part of PR8887. llvm-svn: 122728
* Teach EarlyCSE to do trivial CSE of loads and read-only calls.Chris Lattner2011-01-032-22/+197
| | | | | | | On 176.gcc, this catches 13090 loads and calls, and increases the number of simple instructions CSE'd from 29658 to 36208. llvm-svn: 122727
OpenPOWER on IntegriCloud