summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Cleanup: remove artificial division between lookup results and const lookupRichard Smith2015-02-2113-40/+33
| | | | | | | results. No-one was ever modifying a lookup result, and it would not be reasonable to do so. llvm-svn: 230123
* Small cleanup. Don't use else when not needed.Davide Italiano2015-02-211-4/+2
| | | | | | Pointed out by David Majnemer. llvm-svn: 230122
* Revert r167816 and replace it with a proper fix for the issue: do notRichard Smith2015-02-216-59/+104
| | | | | | | invalidate lookup_iterators and lookup_results for some name within a DeclContext if the lookup results for a *different* name change. llvm-svn: 230121
* [libc++] Try and prevent evaluation of `is_default_constructible` on tuples ↵Eric Fiselier2015-02-213-2/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | default constructor if it is not needed. Summary: Currently parts of the SFINAE on tuples default constructor always gets evaluated even when the default constructor is never called or instantiated. This can cause a hard compile error when a tuple is created with types that do not have a default constructor. Below is a self contained example using a pair like class. This code will not compile but probably should. ``` #include <type_traits> template <class T> struct IllFormedDefaultImp { IllFormedDefaultImp(T x) : value(x) {} constexpr IllFormedDefaultImp() {} T value; }; typedef IllFormedDefaultImp<int &> IllFormedDefault; template <class T, class U> struct pair { template <bool Dummy = true, class = typename std::enable_if< std::is_default_constructible<T>::value && std::is_default_constructible<U>::value && Dummy>::type > constexpr pair() : first(), second() {} pair(T const & t, U const & u) : first(t), second(u) {} T first; U second; }; int main() { int x = 1; IllFormedDefault v(x); pair<IllFormedDefault, IllFormedDefault> p(v, v); } ``` One way to fix this is to use `Dummy` in a more involved way in the constructor SFINAE. The following patch fixes these sorts of hard compile errors for tuple. Reviewers: mclow.lists, rsmith, K-ballo, EricWF Reviewed By: EricWF Subscribers: ldionne, cfe-commits Differential Revision: http://reviews.llvm.org/D7569 llvm-svn: 230120
* [libcxx] Move to using libc++abi2.exp as the default symbol list for libc++Eric Fiselier2015-02-213-1/+9
| | | | | | | | | | | | | | | | | | | | Summary: libc++abi2.exp should be used whenever `cxxabi.h` defines `_LIBCPPABI_VERSION`. This macro was added to libc++abi in 2012 in r149632. For this reason we should use libc++abi2.exp as default unless otherwise specified. Also when building against an in-tree libc++abi we definitely want to use libc++abi2.exp. I would love to know what OSX was the last to use libc++abi.exp but I can only test on 10.9. Reviewers: danalbert, mclow.lists, EricWF Reviewed By: EricWF Subscribers: meadori, cfe-commits Differential Revision: http://reviews.llvm.org/D7773 llvm-svn: 230119
* CodeGen: convert CCState interface to using ArrayRefsTim Northover2015-02-2114-76/+62
| | | | | | | | | | | Everyone except R600 was manually passing the length of a static array at each callsite, calculated in a variety of interesting ways. Far easier to let ArrayRef handle that. There should be no functional change, but out of tree targets may have to tweak their calls as with these examples. llvm-svn: 230118
* Run simple-fail.cpp at -O{1,2,3}.Peter Collingbourne2015-02-211-0/+36
| | | | | | | It's probably overkill to run the other tests at -O* given the increasing combinatorial explosion. llvm-svn: 230117
* CFI: Add tests for 32-bit, 64-bit and memory bitsets. Break optimization in ↵Peter Collingbourne2015-02-217-3/+199
| | | | | | more places. llvm-svn: 230116
* Improve diagnostic when failing to synthesize implicit member due to ↵Hans Wennborg2015-02-213-2/+19
| | | | | | | | | | | | | | dllexport (PR22591) This is only a problem in C++03 mode targeting MS ABI (MinGW doesn't export inline methods, and C++11 marks these methods implicitly deleted). Since targeting the MS ABI in pre-C++11 mode is a rare configuration, this will probably not get fixed, but we can at least have a better error message. llvm-svn: 230115
* Fix typo.Larisse Voufo2015-02-211-1/+1
| | | | llvm-svn: 230114
* Win64: Stack alignment constraints aren't applied during SET_FPREGDavid Majnemer2015-02-213-57/+47
| | | | | | | | | | Stack realignment occurs after the prolog, not during, for Win64. Because of this, don't factor in the maximum stack alignment when establishing a frame pointer. This fixes PR22572. llvm-svn: 230113
* Move -fdefine-sized-deallocation and -fno-sized-deallocation options from ↵Larisse Voufo2015-02-214-19/+11
| | | | | | driver into CC1 for now. llvm-svn: 230112
* AsmParser/Writer: Handle symbolic constants in DI 'flags:'Duncan P. N. Exon Smith2015-02-219-33/+109
| | | | | | | | | | | | | | | | | | | | | | | | | | | Parse (and write) symbolic constants in debug info `flags:` fields. This prevents a readability (and CHECK-ability) regression with the new debug info hierarchy. Old (well, current) assembly, with pretty-printing: !{!"...\\0016387", ...} ; ... [public] [rvalue reference] Flags field without this change: !MDDerivedType(flags: 16387, ...) Flags field with this change: !MDDerivedType(flags: DIFlagPublic | DIFlagRValueReference, ...) As discussed in the review thread, this isn't a final state. Most of these flags correspond to `DW_AT_` symbolic constants, and we might eventually want to support arbitrary attributes in some form. However, as it stands now, some of the flags correspond to other concepts (like `FlagStaticMember`); until things are refactored this is the simplest way to move forward without regressing assembly. llvm-svn: 230111
* Add missing Xcode project files for MICmdCmdSymbol.cpp and MICmdCmdSymbol.h.Greg Clayton2015-02-211-0/+6
| | | | llvm-svn: 230110
* [Objective-C]. Provide a new formatting kind, "os_trace" whichFariborz Jahanian2015-02-214-2/+59
| | | | | | | can take a "const char*" format but supports standard printf and CF/NS types . rdar://19904147 llvm-svn: 230109
* IR: Add helper to split debug info flags bitfieldDuncan P. N. Exon Smith2015-02-213-0/+52
| | | | | | | | Split debug info 'flags' bitfield over a vector so the current flags can be iterated over. This API (in combination with r230107) will be used for assembly support for symbolic constants. llvm-svn: 230108
* IR: Add debug info flag string conversionsDuncan P. N. Exon Smith2015-02-213-0/+68
| | | | | | | | | Add `DIDescriptor::getFlag(StringRef)` and `DIDescriptor::getFlagString(unsigned)`. The latter only converts exact matches; I'll add separate API for breaking the flags bitfield up into parts. llvm-svn: 230107
* Don't use:Greg Clayton2015-02-212-2/+2
| | | | | | | | | | #include <lldb/API/*>" Please use: #include "lldb/API/*" llvm-svn: 230106
* IR: Move DebugInfo Flag* definitions to .def file, NFCDuncan P. N. Exon Smith2015-02-212-18/+39
| | | | | | This prepares for adding string support. llvm-svn: 230105
* Revert "Adapt Makefile dependencies for the clang module format change in ↵Adrian Prantl2015-02-2114-76/+33
| | | | | | r230089." llvm-svn: 230104
* Revert "Wrap clang module files in a Mach-O, ELF, or COFF container."Adrian Prantl2015-02-2133-400/+66
| | | | | | | | This reverts commit 230099. The Linux configure+make build variant still needs some work. llvm-svn: 230103
* Fix the test so it runs correctly when there are spaces in the path to the ↵Greg Clayton2015-02-211-1/+1
| | | | | | | | stdc++ library. <rdar://problem/19297312> llvm-svn: 230102
* Fix this test case so it runs correctly.Greg Clayton2015-02-211-3/+5
| | | | | | <rdar://problem/19286788> llvm-svn: 230101
* AsmParser: Use StringRef for keyword comparisons, NFCDuncan P. N. Exon Smith2015-02-211-10/+9
| | | | | | | | Leverage `StringRef` inside keyword comparison macros. There's no reason to be so low-level here, and I'm about to add another `startswith()` use, so let's make it easy to read. llvm-svn: 230100
* configure+make: Rearange clangCodeGen to come before clangAST.Adrian Prantl2015-02-211-2/+2
| | | | | | Follow-up to r230089. llvm-svn: 230099
* Set the datalayout in the gold plugin.Rafael Espindola2015-02-211-0/+3
| | | | | | This fixes the gold tests after r230054. llvm-svn: 230098
* [PlaceSafepoints] Adjust enablement logic to default to off and be GC ↵Philip Reames2015-02-216-20/+43
| | | | | | | | configurable per GC Previously, this pass ran over every function in the Module if added to the pass order. With this change, it runs only over those with a GC attribute where the GC explicitly opts in. A GC can also choose which of entry safepoint polls, backedge safepoint polls, and call safepoints it wants. I hope to get these exposed as checks on the GCStrategy at some point, but for now, the checks are manual string comparisons. llvm-svn: 230097
* configure+make: Add ipo to the dependencies of libclang.Adrian Prantl2015-02-211-1/+1
| | | | | | Follow-up to r230089. llvm-svn: 230096
* AsmParser: Use do{}while(false) in macros, NFCDuncan P. N. Exon Smith2015-02-201-11/+21
| | | | | | | | | | | | | | `do { ... } while (false)` is standard macro etiquette for forcing instantiations into a single statement and requiring a `;` afterwards, making statement-like macros easier to reason about (and harder to use incorrectly). I'm about to modify the macros in `LexIdentifier()`. I noticed that the `KEYWORD` macro *does* follow the rule, so I thought I'd clean up the other macros to match (otherwise might not be worth changing, since the benefits of this pattern are fairly irrelevant here). llvm-svn: 230095
* Remove some unnecessary unreachables in favor of (sometimes implicit) assertionsDavid Blaikie2015-02-202-53/+36
| | | | | | | Also simplify some else-after-return cases including some standard algorithm convenience/use. llvm-svn: 230094
* LiveRangeCalc: Don't start liveranges of PHI instruction at the block begin.Matthias Braun2015-02-201-5/+2
| | | | | | | | | | | | | | | | | | Summary: Letting them begin at the PHI instruction slightly simplifies the code but more importantly avoids breaking the assumption that live ranges starting at the block begin are also live at the end of the predecessor blocks. The MachineVerifier checks that but was apparently never run in the few instances where liveranges are calculated for machine-SSA functions. Reviewers: qcolombet Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D7779 llvm-svn: 230093
* [Mips] Support mips32r3, mips32r5, mips64r3, mips64r5 MIPS ISA namesSimon Atanasyan2015-02-205-2/+82
| | | | | | | | | The patch teaches the clang's driver to understand new MIPS ISA names, pass appropriate options to the assembler, defines corresponding macros etc http://reviews.llvm.org/D7737 llvm-svn: 230092
* Don't set $LIB if we're not targetting windows.Filipe Cabecinhas2015-02-201-1/+2
| | | | | | | | | | Reviewers: timurrrr, samsonov Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D7739 llvm-svn: 230091
* Adapt Makefile dependencies for the clang module format change in r230089.Adrian Prantl2015-02-2014-33/+76
| | | | llvm-svn: 230090
* Wrap clang module files in a Mach-O, ELF, or COFF container.Adrian Prantl2015-02-2033-65/+399
| | | | | | | | | | | | | | This is a necessary prerequisite for debugging with modules. The .pcm files become containers that hold the serialized AST which allows us to store debug information in the module file that can be shared by all object files that were built importing the module. rdar://problem/19104245 This reapplies r230044 with a fixed configure+make build and updated dependencies. Take 2. llvm-svn: 230089
* Hide a bunch of advanced testing options in default opt --help outputPhilip Reames2015-02-201-7/+9
| | | | | | These are internal options. I need to go through, evaluate which are worth keeping and which not. Many of them should probably be renamed as well. Until I have time to do that, we can at least stop poluting the standard opt -help output. llvm-svn: 230088
* Use short names for jumptable sections.Rafael Espindola2015-02-202-29/+32
| | | | | | Also refactor code to remove some duplication. llvm-svn: 230087
* PECOFF: Temporarily add a lock to un-break buildbot.Rui Ueyama2015-02-201-0/+4
| | | | | | | | | | | | Looks like there's a threading issue in the COFF reader which makes buildbot unstable. Probability of crash varies depending on the number of input. If we are linking a big executalbe, LLD almost always crash. This patch temporarily adds a lock to guard the reader so that LLD doesn't crash. I'll investigate and fix the issue as soon as possible because this patch has negative performance impact. llvm-svn: 230086
* Revert "[llvm-pdbdump] Add some tests for llvm-pdbdump."Zachary Turner2015-02-209-67/+0
| | | | | | | It is not correctly detecting the situations where the test is unsupported. Reverting until we can figure it out. llvm-svn: 230085
* [RewriteStatepointsForGC] Use DenseSet in place of std::set [NFC]Philip Reames2015-02-201-8/+8
| | | | | | This should be the last cleanup on non-llvm preferred data structures. I left one use of std::set in an assertion; DenseSet didn't seem to have a tombstone for CallSite defined. That might be worth fixing, but wasn't worth it for a debug only use. llvm-svn: 230084
* [llvm-pdbdump] Add some tests for llvm-pdbdump.Zachary Turner2015-02-209-0/+67
| | | | | | | | | | This adds only a very basic set of tests that dump a few functions and object files. Differential Revision: http://reviews.llvm.org/D7656 Reviewed By: David Blaikie llvm-svn: 230083
* Fix TestStubSetSID after unification in to a single lldb-server binary.Siva Chandra2015-02-201-2/+7
| | | | | | | | | | | | | | | | | | | Summary: lldb-server needs an explicit 'g' or 'p' argument now. Since lldb-server is started as a gdbserver in this test, 'g' should be passed to it explicitly. Test Plan: ./dotest.py -p TestStubSetSID Reviewers: flackr, ovyalov Reviewed By: ovyalov Subscribers: lldb-commits Differential Revision: http://reviews.llvm.org/D7801 llvm-svn: 230082
* [RewriteStatepointsForGC] Replace std::map with DenseMapPhilip Reames2015-02-201-2/+2
| | | | | | I'd done the work of extracting the typedef in a previous commit, but didn't actually change it. Hopefully this will make any subtle changes easier to isolate. llvm-svn: 230081
* This should fix the Windows buildEnrico Granata2015-02-201-0/+1
| | | | llvm-svn: 230080
* [RewriteStatepointsForGC] Cleanup - replace std::vector usage [NFC]Philip Reames2015-02-201-40/+38
| | | | | | Migrate std::vector usage to a combination of SmallVector and ArrayRef. llvm-svn: 230079
* Used the cached subtarget off of the MachineFunction.Eric Christopher2015-02-202-5/+3
| | | | llvm-svn: 230078
* Rename the "glob arguments" feature to "shell expand arguments"Enrico Granata2015-02-2022-58/+58
| | | | | | This should not bring any feature change, except changing names of things here and there llvm-svn: 230077
* Make sure things build for iOS after recent changes.Greg Clayton2015-02-201-7/+9
| | | | llvm-svn: 230076
* X86: Remove pre-2010 dead code in mergeSPUpdatesDownReid Kleckner2015-02-201-36/+0
| | | | llvm-svn: 230075
* LowerScalarImmediateShift - Merged v16i8 and v32i8 shift lowering. NFC.Simon Pilgrim2015-02-201-60/+13
| | | | llvm-svn: 230074
OpenPOWER on IntegriCloud