summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Fix historical #ifdef. Use __cplusplus instead of __GXX_EXPERIMENTAL_CXX0X__ ↵Marshall Clow2014-02-211-1/+1
| | | | | | when compiling with clang. No functionality change. llvm-svn: 201864
* Remove dead declarationSylvestre Ledru2014-02-211-1/+0
| | | | llvm-svn: 201863
* [CMake] libclang: Use llvm_add_library(SHARED STATIC).NAKAMURA Takumi2014-02-211-37/+33
| | | | llvm-svn: 201862
* [tsan] add coarse-grained lock around the DeadlockDetector. We can do better ↵Kostya Serebryany2014-02-217-25/+74
| | | | | | than that, but that's a start. llvm-svn: 201861
* Codegen: Do not crash when seeing debug intrinsicsTobias Grosser2014-02-212-0/+88
| | | | | | | | | | We now skip the debug intrinsics which is a lot better than crashing due to uncopied metadata references. We should step by step investigate which debug intrinsics we can copy without trouble. We still keep the debug location metadata. llvm-svn: 201860
* [CMake] llvm-c/lto.h should be installed if libLTO.a is built.NAKAMURA Takumi2014-02-211-4/+2
| | | | llvm-svn: 201859
* Internal naming convention consistency change.Aaron Ballman2014-02-211-4/+4
| | | | llvm-svn: 201858
* Moving the documentation for the format attribute into AttrDocs.Aaron Ballman2014-02-214-61/+129
| | | | llvm-svn: 201857
* [CMake] libLTO: Use (SHARED|STATIC) to build both shared LTO and LTO_static.NAKAMURA Takumi2014-02-211-15/+3
| | | | llvm-svn: 201856
* [CMake] llvm_add_library: Add dependencies also to objlibs as workaround of ↵NAKAMURA Takumi2014-02-211-0/+13
| | | | | | | | CMake issue 14747. http://www.cmake.org/Bug/view.php?id=14747 llvm-svn: 201855
* [CMake] Introduce "llvm_add_library(SHARED STATIC)" to build both shared lib ↵NAKAMURA Takumi2014-02-211-2/+36
| | | | | | | | | | | | | | and static lib simulataneously. llvm_add_library(foo SHARED STATIC DEPENDS <dependent targets...> LINK_LIBS <required libraries...> ) It generates both foo (foo.so) and foo_static(foo.a) and both of them depend on DEPENDS and LINK_LIBS. Then, also obj.foo is generated. obj.foo depends on DEPENDS, but doesn't depend on LINK_LIBS. llvm-svn: 201854
* Teach LLVM-Config to use logical target names (2/2)NAKAMURA Takumi2014-02-214-8/+11
| | | | | | | | | | | | | The module still needs to collect the list of all available libraries in order to satisfy the 'all' component. Provide this in the package configuration file, 'LLVMConfig.cmake', as a LLVM_AVAILABLE_LIBS variable. (A variable is scoped better than a global property.) Since this won't be set for our own build, fall back to looking up the LLVM_LIBS property to get the value when it is not set. Contributed by Brad King. llvm-svn: 201853
* Teach LLVM-Config to use logical target names (1/2)NAKAMURA Takumi2014-02-211-15/+7
| | | | | | | | | | | LLVM library names are now available as logical CMake targets both to our own build and to application CMake code. Replace use of 'list(FIND)' with a simple 'if(TARGET)' to determine whether a library is available. Contributed by Brad King. llvm-svn: 201852
* Moving the documentation for the type safety checking attributes into ↵Aaron Ballman2014-02-215-156/+302
| | | | | | AttrDocs. If a custom heading is provided, do not automatically generate the alternate spelling list. This is necessary because some attributes have distinct semantic spellings and meanings, but use the same semantic attribute internally. Such attributes should have multiple elements in their documentation list, but not show all spellings. At some point, it would be nice to have a way to attach the documentation element to a specific spelling for these cases. llvm-svn: 201851
* Moving the documentation for the sanitizer negation attributes into AttrDocs.Aaron Ballman2014-02-214-34/+73
| | | | llvm-svn: 201850
* Remove commas at the end of lists (C++11 again)Tim Northover2014-02-211-2/+2
| | | | llvm-svn: 201849
* ARM & AArch64: use table for EmitCommonNeonBuiltinExprTim Northover2014-02-212-951/+929
| | | | | | | | | | This extends the intrinsic lookup table format slightly, and adds entries for use the shared ARM/AArch64 definitions. The benefit is currently smaller than for the SISD intrinsics (there's more custom code implementing this set), but a few lines are saved and there's scope for future expansion. llvm-svn: 201848
* AArch64: refactor table-driven NEON lookup.Tim Northover2014-02-212-204/+185
| | | | | | | | | | This extracts the table-driven intrinsic lookup phase into a separate function, to be used by EmitCommonNeonBuiltinExpr soon. It also simplifies the logic used in that lookup, since VectorCastArgN and ScalarArgN were actually identical. llvm-svn: 201847
* Add support for FPv4-SP to the clang driverOliver Stannard2014-02-212-0/+13
| | | | | | | | | | | | | Added two new options for -mfpu when targetting ARM: * fpv4-sp-d16 * fp4-sp-d16 The first is the same spelling as gcc. The lack of a leading `v' is correct, this is consistent with ARM's documentation and gcc's spelling of the option. llvm-svn: 201846
* Darwin: use the compiler-provided linkerTim Northover2014-02-211-1/+1
| | | | | | | | When actually compiling we use clang for the final .dylib creation stage, so we should ask it what linker it'll use when detecting support for our architectures. llvm-svn: 201845
* Solve the errorsYaron Keren2014-02-211-1/+1
| | | | | | | | | | | | | | | Error 1 error C2681: 'add_rvalue_reference<_Tp*>::type' : invalid expression type for dynamic_cast c:\libcxx\include\type_traits This is one more step getting libcxx compile under Visual C++. The patch is #if defined(_LIBCPP_MSVC) so will affect only this build. When libcxx can be compiled, it will probably require the current version or maybe even the next Update of Visual C++ 2013. Patch by G M! llvm-svn: 201844
* Teach libc++ to use the compiler-provided C-compatible ::max_align_tChandler Carruth2014-02-211-0/+5
| | | | | | | | rather than its own type for std::max_align_t. This is particularly relevant as the types may not be ABI compatible despite users expecting them to be. llvm-svn: 201843
* [CMake] Get rid of explicit dependencies to include/clang/*.inc and ↵NAKAMURA Takumi2014-02-2126-276/+12
| | | | | | | | | | | | | | | | | | | introduce CLANG_TABLEGEN_TARGETS. This does; - clang_tablegen() adds each tblgen'd target to global property CLANG_TABLEGEN_TARGETS as list. - List of targets is added to LLVM_COMMON_DEPENDS. - all clang libraries and targets depend on generated headers. You might wonder this would be regression, but in fact, this is little loss. - Almost all of clang libraries depend on tblgen'd files and clang-tblgen. - clang-tblgen may cause short stall-out but doesn't cause unconditional rebuild. - Each library's dependencies to tblgen'd files might vary along headers' structure. It made hard to track and update *really optimal* dependencies. Each dependency to intrinsics_gen and ClangSACheckers is left as DEPENDS. llvm-svn: 201842
* [AArch64] Add register constraints to avoid generating STLXR and STXR with ↵Kevin Qin2014-02-212-0/+82
| | | | | | unpredictable behavior. llvm-svn: 201841
* Fix gcc -Wparentheses warning.Patrik Hagglund2014-02-211-1/+1
| | | | llvm-svn: 201840
* Add a new idea of a "fallback" UnwindPlan to the RegisterContextLLDBJason Molenda2014-02-213-52/+119
| | | | | | | | | | | | | | | | | | | | | | | | | | | | class. If we try to unwind a stack frame to find a caller stack frame, and we fail to get a valid-looking frame, AND if the UnwindPlan we used is an assembly-inspection based UnwindPlan, then we should throw away the assembly-inspection UnwindPlan and try unwinding with the architectural default UnwindPlan. This code path won't be taken if eh_frame unwind instructions are available - lldb will always prefer those once it's off the zeroth frame. The problem I'm trying to fix here is the class of unwind failures that happen when we have hand-written assembly on the stack, with no eh_frame, and lldb's assembly parser fails to understand the assembly. People usually write their hand-written assembly to follow the frame-pointer-preserving conventions of the platform so the architectural default UnwindPlan will often work. We won't have the spill location for most of the non-volatile registers if we fall back to this, but it's better than stopping the unwind prematurely. This is a bit of a tricky change that I believe is correct, but if we get unwinds that go of into the weeds / unwind bogus frames at the end of the stack, I'll need to revisit it. <rdar://problem/16099440> llvm-svn: 201839
* This test was failing on non-X86-64 platforms because stackmaps only work on ↵Filip Pizlo2014-02-211-0/+9
| | | | | | | | X86-64. Disable it on non-X86-64 platforms and add a comment. llvm-svn: 201838
* Accept -no-integrated-as in -cc1 and forward it to llvm.Rafael Espindola2014-02-216-6/+11
| | | | llvm-svn: 201837
* Make DisableIntegratedAS a TargetOption.Rafael Espindola2014-02-214-16/+21
| | | | | | | This replaces the old NoIntegratedAssembler with at TargetOption. This is more flexible and will be used to forward clang's -no-integrated-as option. llvm-svn: 201836
* MS ABI: Include the vfptr offset in memptrs to virtual methodsReid Kleckner2014-02-212-13/+45
| | | | | | | | | | | | | | | Virtual methods expect 'this' to point to the vfptr containing the virtual method, and this extends to virtual member pointer thunks. The relevant vfptr is always at offset zero on entry to the thunk, and no this adjustment is needed. Previously we would not include the vfptr adjustment in the member pointer, and we'd look at the vfptr offset when loading from the vftable in the thunk. Fixes PR18917. llvm-svn: 201835
* One last pass of DataLayout variable renaming.Rafael Espindola2014-02-212-9/+9
| | | | llvm-svn: 201834
* Rename a few more DataLayout variables.Rafael Espindola2014-02-218-30/+30
| | | | llvm-svn: 201833
* [MS-ABI] Update to zero-sized padding algorithmWarren Hunt2014-02-212-21/+59
| | | | | | | | | | Slight change to the way zero-sized sub-objects are tracked in the presence of virtual bases. In addition we correctly distinguish between dsize and nvsize. addresses http://llvm.org/bugs/show_bug.cgi?id=18826 Unit tests are included. llvm-svn: 201832
* There’s no need to call posix_spawnp_setbinpref_np when we are launching ↵Jim Ingham2014-02-211-18/+25
| | | | | | | | in the shell. That only sets the architecture of the shell, we use “arch —arch” to actually pick the binary we actually want to launch’s architecture. <rdar://problem/16103187> llvm-svn: 201831
* Fix an assertion failure when invoking dsymutil.Bob Wilson2014-02-212-2/+8
| | | | | | | | | There is no bound architecture for the dsymutil action in the driver. Trying to check various properties of the target will cause an assertion failure because the target doesn't get initialized without a bound architecture. <rdar://problem/16111555> llvm-svn: 201830
* [analyzer] Fix a bug in IdenticalExprChecker concerning while loops.Jordan Rose2014-02-212-2/+18
| | | | | | | | | Somehow both Daniel and I missed the fact that while loops are only identical if they have identical bodies. Patch by Daniel Fahlgren! llvm-svn: 201829
* Add a fallback path for buildbots temporarily stuck on really oldAdrian Prantl2014-02-211-4/+12
| | | | | | versions of LLDB. llvm-svn: 201828
* Rename many DataLayout variables from TD to DL.Rafael Espindola2014-02-2138-924/+924
| | | | | | | | | I am really sorry for the noise, but the current state where some parts of the code use TD (from the old name: TargetData) and other parts use DL makes it hard to write a patch that changes where those variables come from and how they are passed along. llvm-svn: 201827
* Stackmaps are used for OSR exits, which is a custom kind of unwinding. ↵Filip Pizlo2014-02-205-2/+95
| | | | | | | | | | | | | | | | | Hence, they should not be marked nounwind. Marking them nounwind caused crashes in the WebKit FTL JIT, because if we enable sufficient optimizations, LLVM starts eliding compact_unwind sections (or any unwind data for that matter), making deoptimization via stackmaps impossible. This changes the stackmap intrinsic to be may-throw, adds a test for exactly the sympton that WebKit saw, and fixes TableGen to handle un-attributed intrinsics. Thanks to atrick and philipreames for reviewing this. llvm-svn: 201826
* Revert the removal of PPCallbacks::PragmaComment() in r201821Reid Kleckner2014-02-202-0/+34
| | | | | | | | The pp-trace clang tool was using it successfully. We can still delete the callbacks in Frontend/PrintPreprocessedOutput.cpp because they were effectively dead. llvm-svn: 201825
* Sema: Do not assert when dereferencing member pointer using virtual ↵David Majnemer2014-02-207-58/+68
| | | | | | | | | | | | | | inheritance with an incomplete class type The MS ABI requires that we determine the vbptr offset if have a virtual inheritance model. Instead, raise an error pointing to the diagnostic when this happens. This fixes PR18583. Differential Revision: http://llvm-reviews.chandlerc.com/D2842 llvm-svn: 201824
* Revert "Enable MSRecordLayout in the presence of external sources."Reid Kleckner2014-02-201-1/+1
| | | | | | | | | | | This reverts commit r201810. It was failing these tests on my workstation: Clang :: CodeGen/override-layout.c Clang :: CodeGenCXX/override-layout.cpp Clang :: PCH/check-deserializations.cpp llvm-svn: 201823
* Make sure that value handle users see the transformation of an indirect call ↵Nick Lewycky2014-02-202-0/+25
| | | | | | to a direct call. This is important for the CallGraph iteration. Patch by Björn Steinbrink! llvm-svn: 201822
* Expand macros in pragmas with -fms-extensions and -EReid Kleckner2014-02-204-70/+27
| | | | | | | | | | | | | | gcc never expands macros in pragmas and MSVC always expands macros before processing pragmas. Clang usually allows macro expansion, except in a handful of pragmas, most of which are handled by the lexer. Also remove PPCallbacks for pragmas that are currently handled in the parser. Without a Parser, such as with clang -E, these callbacks would never be called. Fixes PR18576. llvm-svn: 201821
* Hide pragma handler classes in ParsePragma.cppReid Kleckner2014-02-204-246/+212
| | | | | | | | | | | | | | This reduces the number of files we need to touch to add a new pragma, and reduces the number of externally visible symbols in clang. Make the handlers structs instead of classes because the vast majority have no private members. Reviewers: rsmith Differential Revision: http://llvm-reviews.chandlerc.com/D2834 llvm-svn: 201820
* Set the SuppressWarnings option on tool level and propagate to the library.Eli Bendersky2014-02-203-14/+21
| | | | | | | | | | | | | The SuppressWarnings flag, unfortunately, isn't very useful for custom tools that want to use the LLVM module linker. So I'm changing it to a parameter of the Linker, and the flag itself moves to the llvm-link tool. For the time being as SuppressWarnings is pretty much the only "option" it seems reasonable to propagate it to Linker objects. If we end up with more options in the future, some sort of "struct collecting options" may be a better idea. llvm-svn: 201819
* Recommit virtual file systemBen Langmuir2014-02-2017-109/+711
| | | | | | | | | | | Previously reverted in r201755 due to causing an assertion failure. I've removed the offending assertion, and taught the CompilerInstance to create a default virtual file system inside createFileManager. In the future, we should be able to reach into the CompilerInvocation to customize this behaviour without breaking clients that don't care. llvm-svn: 201818
* Add polyhedral dead code elimination.Tobias Grosser2014-02-207-8/+459
| | | | | | | | | This pass eliminates loop iterations that compute results that are not used later on. This can help e.g. in D, where the default zero-initialization is often unnecessary if right after new values are assigned to an array. Contributed-by: Peter Conn <conn.peter@gmail.com> llvm-svn: 201817
* Fix formattingTobias Grosser2014-02-201-1/+1
| | | | llvm-svn: 201816
* Do not track location of scalar dependences in ScopInfoTobias Grosser2014-02-202-2/+60
| | | | | | | | | | | We do not have a use for this information at the moment. If we need this at some point, the "instruction -> access" mapping needs to be enhanced as a single instruction could then possibly perform multiple accesses. This patch allows us to build the polyhedral information for scops with scalar dependences. llvm-svn: 201815
OpenPOWER on IntegriCloud