summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Convert assert(0) to llvm_unreachableCraig Topper2012-02-0513-46/+41
| | | | llvm-svn: 149816
* Begin fleshing out more convenience predicates in llvm::Triple andChandler Carruth2012-02-052-31/+41
| | | | | | | | | | convert at least one client over to use them. Subsequent patches both to LLVM and Clang will try to convert more people over to a common set of predicates. This round of predicates is focused on OS-categorization predicates. llvm-svn: 149815
* Convert assert(0) to llvm_unreachableCraig Topper2012-02-0519-41/+41
| | | | llvm-svn: 149814
* Simplify contains tests using 'count'.David Blaikie2012-02-051-2/+1
| | | | llvm-svn: 149813
* Made a fix that would affect anything in the anonymous namespace when lookingGreg Clayton2012-02-051-1/+1
| | | | | | for types and comparing decl context matches. llvm-svn: 149812
* Added some extra comments for the declaration context comparison functionGreg Clayton2012-02-051-2/+42
| | | | | | in the DWARF plug-in. llvm-svn: 149811
* BBVectorize.cpp: Get rid of comparision to bool to fix a warning.NAKAMURA Takumi2012-02-051-1/+1
| | | | llvm-svn: 149810
* Convert assert(0) to llvm_unreachable in X86 Target directory.Craig Topper2012-02-058-22/+20
| | | | llvm-svn: 149809
* Convert some assert(0) in default of switch statements to llvm_unreachable.Craig Topper2012-02-051-10/+7
| | | | llvm-svn: 149808
* Add target specific node for PMULUDQ. Change patterns to use it and custom ↵Craig Topper2012-02-054-69/+69
| | | | | | lower intrinsics to it. Use it instead of intrinsic to handle 64-bit vector multiplies. llvm-svn: 149807
* Fixing a warning in MSVC (this is also a test commit)Aaron Ballman2012-02-051-1/+1
| | | | llvm-svn: 149806
* Improve the bitcode reader's handling of constant strings to useChris Lattner2012-02-051-22/+6
| | | | | | | ConstantDataArray::getString direction, instead of "boxing" each byte into a ConstantInt and using ConstantArray::get. llvm-svn: 149805
* <rdar://problem/10560053>Greg Clayton2012-02-0528-160/+801
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed "target modules list" (aliased to "image list") to output more information by default. Modified the "target modules list" to have a few new options: "--header" or "-h" => show the image header address "--offset" or "-o" => show the image header address offset from the address in the file (the slide applied to the shared library) Removed the "--symfile-basename" or "-S" option, and repurposed it to "--symfile-unique" "-S" which will show the symbol file if it differs from the executable file. ObjectFile's can now be loaded from memory for cases where we don't have the files cached locally in an SDK or net mounted root. ObjectFileMachO can now read mach files from memory. Moved the section data reading code into the ObjectFile so that the object file can get the section data from Process memory if the file is only in memory. lldb_private::Module can now load its object file in a target with a rigid slide (very common operation for most dynamic linkers) by using: bool Module::SetLoadAddress (Target &target, lldb::addr_t offset, bool &changed) lldb::SBModule() now has a new constructor in the public interface: SBModule::SBModule (lldb::SBProcess &process, lldb::addr_t header_addr); This will find an appropriate ObjectFile plug-in to load an image from memory where the object file header is at "header_addr". llvm-svn: 149804
* Add a test for the miscompilation my recent ConstantDataArray patches ↵Chris Lattner2012-02-051-0/+13
| | | | | | | | introduced, to make sure we don't regress on it in the future. llvm-svn: 149803
* constexpr: Implement DR1358: An instantiation of a constexpr function whichRichard Smith2012-02-054-4/+31
| | | | | | | can't produce a constant expression is not ill-formed (so long as some instantiation of that function can produce a constant expression). llvm-svn: 149802
* reapply the patches reverted in r149477, which enable ConstantDataArray.Chris Lattner2012-02-055-37/+39
| | | | llvm-svn: 149801
* reapply the patches reverted in r149470 that reenable ConstantDataArray,Chris Lattner2012-02-0519-540/+277
| | | | | | | | | but with a critical fix to the SelectionDAG code that optimizes copies from strings into immediate stores: the previous code was stopping reading string data at the first nul. Address this by adding a new argument to llvm::getConstantStringInfo, preserving the behavior before the patch. llvm-svn: 149800
* Basic: import SmallString<> into clang namespaceDylan Noblesmith2012-02-05106-236/+238
| | | | | | | (I was going to fix the TODO about DenseMap too, but that would break self-host right now. See PR11922.) llvm-svn: 149799
* Basic: import OwningPtr<> into clang namespaceDylan Noblesmith2012-02-0597-215/+219
| | | | llvm-svn: 149798
* Try to fix Benjamin's r149781 on MSVC.NAKAMURA Takumi2012-02-051-0/+1
| | | | | | MSVC has complained the definition of "inline const DiagnosticBuilder &operator<<(const DiagnosticBuilder &DB, CanQualType T)" in clang/AST/CanonicalType.h. llvm-svn: 149797
* constexpr: Fix implementation of DR1311: check for volatile qualifiers inRichard Smith2012-02-053-15/+23
| | | | | | | lvalue-to-rvalue conversions on the source type of the conversion, not the target type (which has them removed for non-class types). llvm-svn: 149796
* Remove most of the intrinsics for XOP VPCMOV instruction. They all aliased ↵Craig Topper2012-02-053-275/+0
| | | | | | to the same instruction with different types. This would be better accomplished with casts in the not yet created xopintrin.h header file. llvm-svn: 149795
* Preserve alignment for Neon vld1_lane/dup and vst1_lane intrinsics.Bob Wilson2012-02-042-7/+27
| | | | | | | | We had been generating load/store instructions with the default alignment for the vector element type, even when the pointer argument had less alignment. <rdar://problem/10538555> llvm-svn: 149794
* Skip freebsd driver test when ppc32/ppc64 targets are not configured.Bob Wilson2012-02-041-0/+1
| | | | | | | Otherwise, the clang driver falls back to invoking gcc and the ppc tests fail. llvm-svn: 149793
* A useful approximation of initializer list constructors.Sebastian Redl2012-02-043-22/+48
| | | | llvm-svn: 149792
* Factor out the actual overload resolution from TryConstructorInitialization, ↵Sebastian Redl2012-02-041-53/+70
| | | | | | since it needs to be used again for list constructor resolution. llvm-svn: 149791
* Don't unwrap initializer lists before calling TryConstructorInitialization, ↵Sebastian Redl2012-02-041-19/+30
| | | | | | instead doing a little more work inside. This should make finding initializer list constructors easier, as well as fix one place where the ({}) vs {} issue was probably poorly handled. llvm-svn: 149790
* Remove an unused and unimplemented function prototype.Sebastian Redl2012-02-041-5/+0
| | | | llvm-svn: 149789
* Also, these objc++ rewriter tests are meant to run in NeXt'sFariborz Jahanian2012-02-0441-42/+42
| | | | | | fragile-abi mode. llvm-svn: 149788
* These tests are intended to run in NeXt's legacy objective-c abi (fragile-abi).Fariborz Jahanian2012-02-0443-44/+44
| | | | | | Make this explicit since default is now nonfragile-abi. llvm-svn: 149787
* Some compilers do require Diagnostic.h to be present here.Benjamin Kramer2012-02-041-1/+1
| | | | llvm-svn: 149785
* Don't include Diagnostics.h twice when it's required zero times.Benjamin Kramer2012-02-041-5/+3
| | | | llvm-svn: 149784
* Move a method from IdentifierTable.h out of line and remove the SmallString ↵Benjamin Kramer2012-02-0452-24/+71
| | | | | | | | include. Fix all the transitive include users. llvm-svn: 149783
* Remove Diagnostic.h include from Preprocessor.h.Benjamin Kramer2012-02-049-22/+30
| | | | | | | - Move the offending methods out of line and fix transitive includers. - This required changing an enum in the PPCallback API into an unsigned. llvm-svn: 149782
* Move various diagnostic operator<< overloads out of line and remove includes ↵Benjamin Kramer2012-02-0438-50/+106
| | | | | | | | | of Diagnostic.h. Fix all the files that depended on transitive includes of Diagnostic.h. With this patch in place changing a diagnostic no longer requires a full rebuild of the StaticAnalyzer. llvm-svn: 149781
* Move Storage and StorageAllocator out of the PartialDiagnostic class so we ↵Benjamin Kramer2012-02-045-82/+86
| | | | | | | | | can forward declare them. Let ASTContext allocate the storage in its BumpPtrAllocator. This will help us remove ASTContext's depedency on PartialDiagnostic.h soon. llvm-svn: 149780
* StaticAnalyzer: Remove FixIts from PathDiagnosticPieces.Benjamin Kramer2012-02-041-17/+1
| | | | | | They were unused and pulled in Diagnostic.h for no reason. llvm-svn: 149779
* In C++11 mode, when an integral constant expression is desired and we have aRichard Smith2012-02-0422-174/+266
| | | | | | | | | | | | | | | | | | value of class type, look for a unique conversion operator converting to integral or unscoped enumeration type and use that. Implements [expr.const]p5. Sema::VerifyIntegerConstantExpression now performs the conversion and returns the converted result. Some important callers of Expr::isIntegralConstantExpr have been switched over to using it (including all of those required for C++11 conformance); this switch brings a side-benefit of improved diagnostics and, in several cases, simpler code. However, some language extensions and attributes have not been moved across and will not perform implicit conversions on constant expressions of literal class type where an ICE is required. In passing, fix static_assert to perform a contextual conversion to bool on its argument. llvm-svn: 149776
* I have brought LLDB up-to-date with top of treeSean Callanan2012-02-0431-685/+979
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | LLVM/Clang. This brings in several fixes, including: - Improvements in the Just-In-Time compiler's allocation of memory: the JIT now allocates memory in chunks of sections, improving its ability to generate relocations. I have revamped the RecordingMemoryManager to reflect these changes, as well as to get the memory allocation and data copying out fo the ClangExpressionParser code. Jim Grosbach wrote the updates to the JIT on the LLVM side. - A new ExternalASTSource interface to allow LLDB to report accurate structure layout information to Clang. Previously we could only report the sizes of fields, not their offsets. This meant that if data structures included field alignment directives, we could not communicate the necessary alignment to Clang and accesses to the data would fail. Now we can (and I have update the relevant test case). Thanks to Doug Gregor for implementing the Clang side of this fix. - The way Objective-C interfaces are completed by Clang has been made consistent with RecordDecls; with help from Doug Gregor and Greg Clayton I have ensured that this still works. - I have eliminated all local LLVM and Clang patches, committing the ones that are still relevant to LLVM and Clang as needed. I have tested the changes extensively locally, but please let me know if they cause any trouble for you. llvm-svn: 149775
* Modified the Enhanced Disassembler to create andSean Callanan2012-02-043-31/+40
| | | | | | | | | | cache disassemblers according to the string value of the target triple, not according to the enum of the triple CPU. The reason for this is that certain attributes of the instruction set are not reflected in the enum, but only in the string. llvm-svn: 149773
* Don't allow a value of a scoped enumeration to be used as the first bound for anRichard Smith2012-02-047-16/+36
| | | | | | | array new expression. This lays some groundwork for the implicit conversion to integral or unscoped enumeration which C++11 ICEs undergo. llvm-svn: 149772
* [analyzer] Make sure Containers OutOfBounds checker does not crash on ↵Anna Zaks2012-02-042-21/+30
| | | | | | undefined arguments, when CF functions are called with wrong number of arguments. llvm-svn: 149771
* Disallow constexpr main.Richard Smith2012-02-043-2/+15
| | | | llvm-svn: 149770
* Drop the REDEF_BY_EC VNInfo flag.Jakob Stoklund Olesen2012-02-044-51/+2
| | | | | | | | | | A live range that has an early clobber tied redef now looks like a normal tied redef, except the early clobber def uses the early clobber slot. This is enough to handle any strange interference problems. llvm-svn: 149769
* Correctly terminate a physreg redefined by an early clobber.Jakob Stoklund Olesen2012-02-041-1/+1
| | | | | | | | | | | | | | | | | I don't have a test that fails because of this, but a test case like CodeGen/X86/2009-12-01-EarlyClobberBug.ll exposes the problem. EAX is redefined by a tied early clobber operand on inline asm, and the live range should look like this: %EAX,inf = [48r,64e:0)[64e,80r:1) 0@48r 1@64e Previously, the two values got merged: %EAX,inf = [48r,80r:0) 0@48r With this bug fixed, the REDEF_BY_EC VNInfo flag is no longer needed. llvm-svn: 149768
* Fix a rejects-valid in C++11: array new of a negative size, or overflowing arrayRichard Smith2012-02-044-17/+49
| | | | | | | | | | | | | | | | | new, is well-formed with defined semantics of throwing (a type which can be caught by a handler for) std::bad_array_new_length, unlike in C++98 where it is somewhere nebulous between undefined behavior and ill-formed. If the array size is an integral constant expression and satisfies one of these criteria, we would previous the array new expression, but now in C++11 mode, we merely issue a warning (the code is still rejected in C++98 mode, naturally). We don't yet implement new C++11 semantics correctly (see PR11644), but we do implement the overflow checking, and (for the default operator new) convert such expressions to an exception, so accepting such code now does not seem especially unsafe. llvm-svn: 149767
* Unbreak failing test added in r149738.Richard Smith2012-02-041-1/+1
| | | | llvm-svn: 149766
* Fix a leak!Nick Lewycky2012-02-041-0/+2
| | | | | | | | | | | | Andy, in a previous commit you made this into an ImmutablePass so that you could add it to the PassManager, then in the next commit you left it a Pass but removed the code that added it to the PM. If you do add it to the PM then the PM should take care of deleting it, but it's also true that nothing in codegen needs this object to exist after it's done its work here. It's not clear to me which design you want; this should likely either cease to be a Pass or be added to the PM where other parts of CodeGen will request it. llvm-svn: 149765
* ArrayRef goodness in MultiplexConsumer, no functionality change.Argyrios Kyrtzidis2012-02-042-3/+5
| | | | llvm-svn: 149764
* Don't store COPY pointers in VNInfo.Jakob Stoklund Olesen2012-02-049-119/+52
| | | | | | | | | | If a value is defined by a COPY, that instuction can easily and cheaply be found by getInstructionFromIndex(VNI->def). This reduces the size of VNInfo from 24 to 16 bytes, and improves llc compile time by 3%. llvm-svn: 149763
OpenPOWER on IntegriCloud