summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Add register mask support to InterferenceCache.Jakob Stoklund Olesen2012-02-103-5/+42
| | | | | | | | | | | | | | | | This makes global live range splitting behave identically with and without register mask operands. This is not necessarily the best way of using register masks for live range splitting. It would be more efficient to first split global live ranges around calls (i.e., register masks), and reserve the fine grained per-physreg interference guidance for global live ranges that do not cross calls. For now the goal is to produce identical assembly when enabling register masks. llvm-svn: 150259
* Remove unused variable.Jakob Stoklund Olesen2012-02-101-2/+1
| | | | llvm-svn: 150258
* Added description of invariant.load metadata to LangRef. It was added to ↵Pete Cooper2012-02-101-1/+9
| | | | | | the compiler in r144100 llvm-svn: 150257
* Allow implicit capture of 'this' in a lambda even when the captureDouglas Gregor2012-02-107-14/+44
| | | | | | | | | | | | default is '=', and reword the warning about explicitly capturing 'this' in such lambdas to indicate that only explicit capture is banned. Introduce Fix-Its for this and other "save the programmer from themself" rules regarding what can be explicitly captured and what must be implicitly captured. llvm-svn: 150256
* Add test from [expr.prim.lambda]p12, which deals with odr-use andDouglas Gregor2012-02-102-3/+30
| | | | | | | | nested captures. We currently don't get odr-use correct in array bounds, so that bit is commented out while we sort out what we need to do. llvm-svn: 150255
* Back out some changes that accidentally committed.Bob Wilson2012-02-1010-29/+3
| | | | llvm-svn: 150254
* Revert r150232 since it breaks the build when there's no ARM assembler.Bob Wilson2012-02-1011-16/+37
| | | | llvm-svn: 150253
* Don't introduce a lambda's operator() into the class until after weDouglas Gregor2012-02-102-49/+60
| | | | | | | | have finished parsing the body, so that name lookup will never find anything within the closure type. Then, add this operator() and the conversion function (if available) before completing the class. llvm-svn: 150252
* Make valgrind happy.Jason W Kim2012-02-101-2/+2
| | | | llvm-svn: 150251
* Update BBVectorize to use aliasesUnknownInst.Hal Finkel2012-02-102-9/+247
| | | | | | | | This allows BBVectorize to check the "unknown instruction" list in the alias sets. This is important to prevent instruction fusing from reordering function calls. Resolves PR11920. llvm-svn: 150250
* Have AliasSet::aliasesUnknownInst use pointer TBAA info when availableHal Finkel2012-02-101-1/+3
| | | | llvm-svn: 150249
* Make aliasesPointer and aliasesUnknownInst public members of AliasSet.Hal Finkel2012-02-101-0/+1
| | | | | | | | These query functions are safe for external use and, furthermore, are the only way to make queries against the "unknown instructions" array. BBVectorize will use these functions. llvm-svn: 150248
* Fix PR11948: the result type of an icmp may be a vector of boolean -Duncan Sands2012-02-102-0/+12
| | | | | | don't assume it is a boolean. llvm-svn: 150247
* Revert commit 149912 (lattner) and add a testcase that shows the problem (whichDuncan Sands2012-02-102-1/+31
| | | | | | | | | | is that patterns no longer match for vectors of booleans, because you only get ConstantDataVector when the vector element type is i8, i16, etc, not when it is i1). Original commit message: Remove some dead code and tidy things up now that vectors use ConstantDataVector instead of always using ConstantVector. llvm-svn: 150246
* Put instruction names into an indexed string table on the side, removing a ↵Benjamin Kramer2012-02-105-14/+39
| | | | | | | | | pointer from MCInstrDesc. Make them accessible through MCInstrInfo. They are only used for debugging purposes so this doesn't have an impact on performance. X86MCTargetDesc.o goes from 630K to 461K on x86_64. llvm-svn: 150245
* PR11684, core issue 1417:Richard Smith2012-02-1014-182/+197
| | | | | | | | | | | | | | o Correct the handling of the restrictions on usage of cv-qualified and ref-qualified function types. o Fix a bug where such types were rejected in template type parameter default arguments, due to such arguments not being treated as a template type arg context. o Remove the ExtWarn for usage of such types as template arguments; that was a standard defect, not a GCC extension. o Improve the wording and unify the code for diagnosing cv-qualifiers with the code for diagnosing ref-qualifiers. llvm-svn: 150244
* Test cleanup: prefer static_assert to handmade alternative.Richard Smith2012-02-101-5/+2
| | | | llvm-svn: 150243
* Loosen the test from r150238 a bit to make some of our bots happy.Evgeniy Stepanov2012-02-101-4/+4
| | | | llvm-svn: 150242
* Track whether a function type has a trailing return type as type sugar. Use thisRichard Smith2012-02-1014-45/+121
| | | | | | | | | | | to pretty-print such function types better, and to fix a case where we were not instantiating templates in lexical order. In passing, move the Variadic bit from Type's bitfields to FunctionProtoType to get the Type bitfields down to 32 bits. Also ensure that we always substitute the return type of a function when substituting explicitly-specified arguments, since that can cause us to bail out with a SFINAE error before we hit a hard error in parameter substitution. llvm-svn: 150241
* --lies.Richard Smith2012-02-101-2/+0
| | | | llvm-svn: 150240
* Add a lambda example from the working draft.Douglas Gregor2012-02-101-0/+9
| | | | llvm-svn: 150239
* Fix function prolog codegen whe coerce-to type is a struct.Evgeniy Stepanov2012-02-102-9/+42
| | | | | | | | | | This changes function prolog in such a way as to avoid out-of-bounds stack store in the case when coerce-to type has a larger storage size than the real argument type. Fixes PR11905. llvm-svn: 150238
* Add various tests for captures and the reaching scope of the lambdaDouglas Gregor2012-02-104-1/+84
| | | | | | | expression. Implement C++11 [expr.prim.lambda]p12's requirement that capturing a variable will odr-use it. llvm-svn: 150237
* Implement the conversion to a function pointer for lambda expressions,Douglas Gregor2012-02-104-8/+79
| | | | | | per C++ [expr.prim.lambda]p6. llvm-svn: 150236
* Extend CXXRecordDecl with a function that determines the mapping fromDouglas Gregor2012-02-104-3/+57
| | | | | | | the variables captured by a lambda to the fields that store the captured values. To be used in IRgen. llvm-svn: 150235
* Update to new resolution for DR1458. When taking the address of an object ofRichard Smith2012-02-103-18/+4
| | | | | | | incomplete class type which has an overloaded operator&, it's now just unspecified whether the overloaded operator or the builtin is used. llvm-svn: 150234
* comment grammarAndrew Trick2012-02-101-1/+1
| | | | llvm-svn: 150233
* make/clang_darwin: Tweak CheckArches function to force the integrated-as and useDaniel Dunbar2012-02-101-8/+13
| | | | | | | | the stub SDK to try and ensure we always pick up the right archs when they should be able to be used. - Also, warn when we drop an architecture. llvm-svn: 150232
* Remove stray semi-colon.Daniel Dunbar2012-02-101-1/+1
| | | | llvm-svn: 150231
* Move -Wswitch from -Wmost to -Wall, consitent with GCC.David Blaikie2012-02-101-3/+2
| | | | | | | | | This is a relatively noisy warning for a codebase not explicitly designed for it (effectively enforcing a stylistic constraint about the use of defaults in switches over enums) & there's nothing Clang does to clean up the noise when compared to GCC's implementation so the same decision seems suitable. llvm-svn: 150230
* update --enable-targets listJia Liu2012-02-101-1/+1
| | | | llvm-svn: 150229
* unnecessary includeAndrew Trick2012-02-101-1/+0
| | | | llvm-svn: 150228
* PTX no longer needs to provide its own backend.Andrew Trick2012-02-102-255/+21
| | | | llvm-svn: 150227
* RegAlloc superpass: includes phi elimination, coalescing, and scheduling.Andrew Trick2012-02-1024-134/+180
| | | | | | | | | | | | | | | | Creates a configurable regalloc pipeline. Ensure specific llc options do what they say and nothing more: -reglloc=... has no effect other than selecting the allocator pass itself. This patch introduces a new umbrella flag, "-optimize-regalloc", to enable/disable the optimizing regalloc "superpass". This allows for example testing coalscing and scheduling under -O0 or vice-versa. When a CodeGen pass requires the MachineFunction to have a particular property, we need to explicitly define that property so it can be directly queried rather than naming a specific Pass. For example, to check for SSA, use MRI->isSSA, not addRequired<PHIElimination>. CodeGen transformation passes are never "required" as an analysis ProcessImplicitDefs does not require LiveVariables. We have a plan to massively simplify some of the early passes within the regalloc superpass. llvm-svn: 150226
* whitespaceAndrew Trick2012-02-101-11/+11
| | | | llvm-svn: 150225
* Remove unused 'isAlias' parameter.Lang Hames2012-02-102-9/+4
| | | | llvm-svn: 150224
* Revert r145999. This turned out to be a bad idea. Unfortunately, 'id' is ↵Ted Kremenek2012-02-105-45/+16
| | | | | | | | | used so profusely in many APIs and large codebases that this made the deprecated warning trigger happy to the point of not being useful. llvm-svn: 150223
* ARM on darwin, v6 implies the presence of VFP for the assembler.Jim Grosbach2012-02-101-3/+11
| | | | | | rdar://10838899 llvm-svn: 150222
* Make sure we convert struct layout pragmas to attributes for class templates ↵Eli Friedman2012-02-102-0/+15
| | | | | | the same way we do for non-template classes. <rdar://problem/10791194>. llvm-svn: 150221
* Constrain the regmask search space for local live ranges.Jakob Stoklund Olesen2012-02-101-3/+13
| | | | | | | When checking a local live range for interference, restrict the binary search to the single block. llvm-svn: 150220
* Cache basic block boundaries for faster RegMaskSlots access.Jakob Stoklund Olesen2012-02-102-1/+36
| | | | | | | Provide API to get a list of register mask slots and bits in a basic block. llvm-svn: 150219
* Optimize LiveIntervals::intervalIsInOneMBB().Jakob Stoklund Olesen2012-02-102-20/+26
| | | | | | | | No looping and binary searches necessary. Return a pointer to the containing block instead of just a bool. llvm-svn: 150218
* Fixed a bunch of ownership problems with the expressionSean Callanan2012-02-104-160/+149
| | | | | | | | | | | | | | | | | | | | | | | | | | | parser. Specifically: - ClangUserExpression now keeps weak pointers to the structures it needs and then locks them when needed. This ensures that they continue to be valid without leaking memory if the ClangUserExpression is long lived. - ClangExpressionDeclMap, instead of keeping a pointer to an ExecutionContext, now contains an ExecutionContext. This prevents bugs if the pointer or its contents somehow become stale. It also no longer requires that ExecutionContexts be passed into any function except its initialization function, since it can count on the ExecutionContext still being around. There's a lot of room for improvement (specifically, ClangExpressionDeclMap should also use weak pointers insetad of shared pointers) but this is an important first step that codifies assumptions that already existed in the code. llvm-svn: 150217
* [analyzer] MallocChecker: add a list of false positives based on runningAnna Zaks2012-02-101-0/+82
| | | | | | the checker over postgres and sqlite. llvm-svn: 150216
* [analyzer] MallocChecker Cleanup - harden against crashes, fix an errorAnna Zaks2012-02-103-20/+43
| | | | | | (use of return instead of continue), wording. llvm-svn: 150215
* Cache iterators. Some of these are expensive to create.Benjamin Kramer2012-02-101-14/+16
| | | | llvm-svn: 150214
* fixing a macro name mismatch that was making our test case succeed for the ↵Enrico Granata2012-02-102-2/+4
| | | | | | wrong reason; plus a minor code change to the CPP side of the test which eases debugging efforts llvm-svn: 150213
* objc translator: mode modern abi stuff.Fariborz Jahanian2012-02-101-0/+96
| | | | llvm-svn: 150212
* Caching the DIE for the DeclContext as reportedSean Callanan2012-02-091-1/+3
| | | | | | | by GetClangDeclContextContainingDIE, for better debuggability. llvm-svn: 150211
* Remove evil const_cast that's not needed anymore.Bill Wendling2012-02-091-3/+1
| | | | llvm-svn: 150210
OpenPOWER on IntegriCloud