summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Add the missing backslash-newline which was causing make errors.Bill Wendling2012-10-031-2/+2
| | | | llvm-svn: 165098
* Make sure 32-bit ASan runtime is available on 64-bit Linux platformsAlexey Samsonov2012-10-031-0/+4
| | | | llvm-svn: 165097
* Build ASan runtime on Linux for both x86_64 and i386, same as we do with ↵Alexey Samsonov2012-10-031-5/+2
| | | | | | full compiler_rt and libprofile llvm-svn: 165096
* While I'm here, resync a %select with the enum definition it selects on.Nico Weber2012-10-031-2/+2
| | | | | | | | | | | | | * nullptr used to be mapped to ERROR, now mapped to nullptr * integral was missing * expressions now have their own error message, so they won't reach this. Map them to ERROR. Note that clang usually crashes before emitting this diagnostic anyway (see PR13984), so this change alone doesn't have an observable effect. It makes the code more correct though. llvm-svn: 165095
* Fix doxygen comment to match function name.Craig Topper2012-10-031-1/+1
| | | | llvm-svn: 165094
* Move expression mangling in the microsoft mangler to its own function.Nico Weber2012-10-031-10/+21
| | | | | | | | | | This matches what's done in ItaniumMangle and makes it a bit easier to implement mangling for more expressions. Also use the slightly nicer "not yet implemented" error message from there. No functionality change (except for the different error message). llvm-svn: 165093
* Remove unused function that used to get itineraries from SubTargetFeatures. ↵Craig Topper2012-10-032-28/+0
| | | | | | This is done from MCSubTargetInfo these days. llvm-svn: 165092
* Replace a default: with an explicit list of cases. No functionality change.Nico Weber2012-10-031-1/+6
| | | | llvm-svn: 165091
* Update the block specification for some long-settled subleties.John McCall2012-10-031-9/+15
| | | | llvm-svn: 165090
* Fix 80-column violationCraig Topper2012-10-031-2/+2
| | | | llvm-svn: 165089
* InlineObjCInstanceMethod.m: Remove lines introduced in r165079. It broke ↵NAKAMURA Takumi2012-10-031-25/+0
| | | | | | | | | | some builds, on FreeBSD, Linux and Windows. error: 'warning' diagnostics expected but not seen: Line 94: types are incompatible 1 error generated. llvm-svn: 165088
* [PCH] Fix serialization of an ImportDecl.Argyrios Kyrtzidis2012-10-032-0/+2
| | | | | | | | ImportDecl's module ID was not written out and the reader accepted as module ID the serialized: Record.push_back(!IdentifierLocs.empty()); llvm-svn: 165087
* Set the file entry for a Module* that was created during deserializationArgyrios Kyrtzidis2012-10-035-5/+12
| | | | | | of a module file. llvm-svn: 165086
* Add a FIXME.Argyrios Kyrtzidis2012-10-031-0/+1
| | | | llvm-svn: 165085
* Introduce ASTConsumer::HandleImplicitImportDecl() callback that is invokedArgyrios Kyrtzidis2012-10-033-3/+17
| | | | | | when an ImportDecl that was implicitly created due to an inclusion directive. llvm-svn: 165084
* Some renames to use the 'visitor' nomenclature, no functionality change.Argyrios Kyrtzidis2012-10-033-5/+5
| | | | llvm-svn: 165083
* Improve C++11 attribute parsing.Michael Han2012-10-039-77/+145
| | | | | | | | - General C++11 attributes were previously parsed and ignored. Now they are parsed and stored in AST. - Add support to parse arguments of attributes that in 'gnu' namespace. - Differentiate unknown attributes and known attributes that can't be applied to statements when emitting diagnostic. llvm-svn: 165082
* test/ExecutionEngine/MCJIT: MCJIT should work also on mingw.NAKAMURA Takumi2012-10-032-2/+2
| | | | | FIXME: Also cygwin? llvm-svn: 165081
* The kernel loading code is now isolated in the DynamicLoaderDarwinKernel;Jason Molenda2012-10-035-189/+65
| | | | | | | | | | remove the duplicates of this code in ProcessGDBRemote and ProcessKDP. These two Process plugins will hardcode their DynamicLoader name to be the DynamicLoaderDarwinKernel so the correct DynamicLoader is picked, and return the kernel load address as the ImageInfosAddress. <rdar://problem/12417038> llvm-svn: 165080
* [analyzer] Adjust the return type of an inlined devirtualized method call.Jordan Rose2012-10-033-6/+109
| | | | | | | | | | | | | | | | | | | | | | | | | In C++, overriding virtual methods are allowed to specify a covariant return type -- that is, if the return type of the base method is an object pointer type (or reference type), the overriding method's return type can be a pointer to a subclass of the original type. The analyzer was failing to take this into account when devirtualizing a method call, and anything that relied on the return value having the proper type later would crash. In Objective-C, overriding methods are allowed to specify ANY return type, meaning we can NEVER be sure that devirtualizing will give us a "safe" return value. Of course, a program that does this will most likely crash at runtime, but the analyzer at least shouldn't crash. The solution is to check and see if the function/method being inlined is the function that static binding would have picked. If not, check that the return value has the same type. If the types don't match, see if we can fix it with a derived-to-base cast (the C++ case). If we can't, return UnknownVal to avoid crashing later. <rdar://problem/12409977> llvm-svn: 165079
* [analyzer] Push evalDynamicCast and evalDerivedToBase up to Store.Jordan Rose2012-10-033-103/+95
| | | | | | | | | These functions are store-agnostic, and would benefit from information in DynamicTypeInfo but gain nothing from the store type. No intended functionality change. llvm-svn: 165078
* Teach getCXXRecordDeclForPointerType about references.Jordan Rose2012-10-034-32/+30
| | | | | | | | | Then, rename it getPointeeCXXRecordDecl and give it a nice doc comment, and actually use it. No intended functionality change. llvm-svn: 165077
* Third try at fixing this. ;] Go back to using std::remove_if, which hasChandler Carruth2012-10-031-8/+28
| | | | | | | | | | most of the behavior we want, but wrap the predicate in one which erases elements from the set if they pass the predicate. Oh what I wouldn't give for a lambda here. Let me know if the predicate wrapping is too much magic. ;] llvm-svn: 165076
* The early if conversion pass is ready to be used as an opt-in.Jakob Stoklund Olesen2012-10-033-5/+11
| | | | | | | | | | | Enable the pass by default for targets that request it, and change the -enable-early-ifcvt to the opposite -disable-early-ifcvt. There are still some x86 regressions when enabling early if-conversion because of the missing machine models. Disable the pass for x86 until machine models are added. llvm-svn: 165075
* Change how the SelfReferenceChecker handles MemberExpr. Instead of treatingRichard Trieu2012-10-032-11/+102
| | | | | | | each one separately, process a stack of MemberExpr's as a single unit so that static calls and member access will not be warned on. llvm-svn: 165074
* Switch the SetVector::remove_if implementation to use partition whichChandler Carruth2012-10-032-3/+6
| | | | | | | | | | | | | | preserves the values of the relocated entries, unlikely remove_if. This allows walking them and erasing them. Also flesh out the predicate we are using for this to support the various constraints actually imposed on a UnaryPredicate -- without this we can't compose it with std::not1. Thanks to Sean Silva for the review here and noticing the issue with std::remove_if. llvm-svn: 165073
* Fix a serious X86 instruction selection bug. InEvan Cheng2012-10-022-3/+30
| | | | | | | | | | | | | X86DAGToDAGISel::PreprocessISelDAG(), isel is moving load inside callseq_start / callseq_end so it can be folded into a call. This can create a cycle in the DAG when the call is glued to a copytoreg. We have been lucky this hasn't caused too many issues because the pre-ra scheduler has special handling of call sequences. However, it has caused a crash in a specific tailcall case. rdar://12393897 llvm-svn: 165072
* Revert "Don't use a debug location for frame setup instructions in the"Eric Christopher2012-10-023-39/+5
| | | | | | | This reverts 165055 and 165052 temporarily while I look at debugger failures. llvm-svn: 165071
* Revert 165058, per Jim request. This requires further discussion.Chad Rosier2012-10-021-38/+2
| | | | llvm-svn: 165070
* Revert 165057, per Jim's request. This requires further discussion.Chad Rosier2012-10-022-33/+8
| | | | llvm-svn: 165069
* Added a test for C++11 statement attributes serialization.Alexander Kornienko2012-10-022-0/+26
| | | | | | | | | | | | | | Summary: Uses [[clang::fallthrough]] attribute in a template function, and -Wimplicit-fallthrough to check the attribute presence in an instantiation. Reviewers: rsmith Reviewed By: rsmith CC: cfe-commits Differential Revision: http://llvm-reviews.chandlerc.com/D55 llvm-svn: 165068
* The mips 64bit instructions DSLL, DSRA, DSRL, DEXT and DINS get transformed ↵Jack Carter2012-10-026-56/+54
| | | | | | | | | | | | by the assembler or through codegen direct object output to other variants based on the value of the immediate values of the operands. If the code is generated as assembler, this transformation does not occur assuming that it will occur later in the assembler. This code was originally called from MipsAsmPrinter.cpp and we needed to check for OutStreamer.hasRawTextSupport(). This was not a good place for it and has been moved to MCTargetDesc/MipsMCCodeEmitter.cpp where both direct object and the assembler use it it automagically. The test cases have been checked in for a number of weeks now. llvm-svn: 165067
* [Doc parse]: SUpport for message in deprecated/unavailableFariborz Jahanian2012-10-025-12/+31
| | | | | | attribute going iinto XML document. llvm-svn: 165066
* Teach the new SROA to handle cases where an alloca that has already beenChandler Carruth2012-10-023-0/+59
| | | | | | | | | | | | | | | | scheduled for processing on the worklist eventually gets deleted while we are processing another alloca, fixing the original test case in PR13990. To facilitate this, add a remove_if helper to the SetVector abstraction. It's not easy to use the standard abstractions for this because of the specifics of SetVectors types and implementation. Finally, a nice small test case is included. Thanks to Benjamin for the fantastic reduced test case here! All I had to do was delete some empty basic blocks! llvm-svn: 165065
* Clean up these doxygen comments to follow the proposed new style. ThisChandler Carruth2012-10-021-21/+22
| | | | | | | also makes it more consistent with Clang and several passes' doxygen style. llvm-svn: 165064
* Make sure to put our sret argument into %rax on x86-64. Fixes PR13563!Nick Lewycky2012-10-022-2/+29
| | | | llvm-svn: 165063
* Remove the old coalescer algorithm.Jakob Stoklund Olesen2012-10-021-344/+1
| | | | | | | The new algorithm has been enabled by default for almost a week now and seems to be stable. llvm-svn: 165062
* Change DynamicLoaderDarwinKernel::OSKextLoadedKextSummary to useJason Molenda2012-10-022-13/+19
| | | | | | | | | | | | | | | | | the Symbols::LocateExecutableObjectFile method to locate kexts and kernels instead of copying them out of the memory of the remote system. This is the fix for <rdar://problem/12416384>. Fix a variable shadowing problem in Symbols::LocateMacOSXFilesUsingDebugSymbols which caused the symbol rich executable binaries to not be found even if they were listed in the dSYM Info.plist. Change Symbols::DownloadObjectAndSymbolFile to ignore dsymForUUID's negative cache - this is typically being called by the user and we should try even if there's a incorrect entry in the negative cache. llvm-svn: 165061
* Handle reserved registers more accurately in handleMove().Jakob Stoklund Olesen2012-10-021-8/+7
| | | | | | | | | | | | Reserved register live ranges look like a set of dead defs - any uses of reserved registers are ignored. Instead of skipping the updating of reserved register operands entirely, just ignore the use operands and treat the def operands normally. No test case, handleMove() is not commonly used yet. llvm-svn: 165060
* Silence -Wunused-value warning.Ted Kremenek2012-10-021-0/+1
| | | | llvm-svn: 165059
* [ms-inline asm] Rewrite the symbol references as wildcard MCParsedAsmOperands.Chad Rosier2012-10-021-2/+38
| | | | | | | A Sema lookup is used to determine the size of the variable, which is in turn used during wildcard matching. llvm-svn: 165058
* [ms-inline asm] Add basic support for wildcard MCParsedAsmOperands. This typeChad Rosier2012-10-022-8/+33
| | | | | | | | | | | | | of operand is specific to MS-style inline assembly and should not be generated when parsing normal assembly. The purpose of the wildcard operands are to allow the AsmParser to match multiple instructions (i.e., MCInsts) to a given ms-style asm statement. For the time being the matcher just returns the first match. This patch only implements wildcard matches for memory operands. Support for register wildcards will be added in the near future. llvm-svn: 165057
* Make sure the whole live range is covered when values are pruned twice.Jakob Stoklund Olesen2012-10-022-2/+31
| | | | | | | | | | | | | | | | | | | | | | | | JoinVals::pruneValues() calls LIS->pruneValue() to avoid conflicts when overlapping two different values. This produces a set of live range end points that are used to reconstruct the live range (with SSA update) after joining the two registers. When a value is pruned twice, the set of end points was insufficient: v1 = DEF v1 = REPLACE1 v1 = REPLACE2 KILL v1 The end point at KILL would only reconstruct the live range from REPLACE2 to KILL, leaving the range REPLACE1-REPLACE2 dead. Add REPLACE2 as an end point in this case so the full live range is reconstructed. This fixes PR13999. llvm-svn: 165056
* Allow alternate instructions to silence bot.Eric Christopher2012-10-021-1/+1
| | | | llvm-svn: 165055
* 80-col.Eric Christopher2012-10-021-2/+2
| | | | llvm-svn: 165054
* Clean-up of memory buffer and object ownership model in MCJITAndrew Kaylor2012-10-0215-163/+311
| | | | llvm-svn: 165053
* Don't use a debug location for frame setup instructions in theEric Christopher2012-10-023-5/+39
| | | | | | | prologue. Also skip frame setup instructions when looking for the first location. llvm-svn: 165052
* Use the existing DebugLoc.Eric Christopher2012-10-021-1/+1
| | | | llvm-svn: 165051
* Make the location a parameter since we may not want the next oneEric Christopher2012-10-021-7/+10
| | | | | | in the block. llvm-svn: 165050
* Remove the SavePoint infrastructure from fast isel, replaceEric Christopher2012-10-024-20/+85
| | | | | | | with just an insert point from the MachineBasicBlock and let the location be updated as we access it. llvm-svn: 165049
OpenPOWER on IntegriCloud