summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Use isPositionIndependent in a few more places.Rafael Espindola2016-06-285-8/+7
| | | | | | | | | I think this converts all the simple cases that really just care about the generated code being position independent or not. The remaining uses are a bit more complicated and are checking things like "is this a library or executable" or "can this symbol be preempted". llvm-svn: 274055
* Update llvm command line parser to support subcommands.Zachary Turner2016-06-284-108/+654
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This allows command line tools to use syntaxes like the following: llvm-foo.exe command1 -o1 -o2 llvm-foo.exe command2 -p1 -p2 Where command1 and command2 contain completely different sets of valid options. This is backwards compatible with previous uses of llvm cl which did not support subcommands, as any option which specifies no optional subcommand (e.g. all existing code) goes into a special "top level" subcommand that expects dashed options to appear immediately after the program name. For example, code which is subcommand unaware would generate a command line such as the following, where no subcommand is specified: llvm-foo.exe -q1 -q2 The top level subcommand can co-exist with actual subcommands, as it is implemented as an actual subcommand which is searched if no explicit subcommand is specified. So llvm-foo.exe as specified above could be written so as to support all three aforementioned command lines simultaneously. There is one additional "special" subcommand called AllSubCommands, which can be used to inject an option into every subcommand. This is useful to support things like help, so that commands such as: llvm-foo.exe --help llvm-foo.exe command1 --help llvm-foo.exe command2 --help All work and display the help for the selected subcommand without having to explicitly go and write code to handle each one separately. This patch is submitted without an example of anything actually using subcommands, but a followup patch will convert the llvm-pdbdump tool to use subcommands. Reviewed By: beanz Differential Revision: http://reviews.llvm.org/D21485 llvm-svn: 274054
* Fix bugs in TAS and futex lockJonathan Peyton2016-06-282-3/+5
| | | | | | | | | * Incorrect lock value written in __kmp_test_futex_lock * Incorrect lock value check in tas/futex lock with USE_LOCK_PROFILE on Patch by Hansang Bae llvm-svn: 274053
* Revert r273898's UNICODE quick fix in favor of CMake's remove_definitions()Jonathan Peyton2016-06-283-8/+6
| | | | | | | | | | | UNICODE and _UNICODE defintions were added in the LLVM CMake build system. While on Unices, the UNICODE/_UNICODE macros don't cause problems, on Windows only ittnotify_static.c should be compiled using -DUNICODE. We are still looking at a proper fix, but this change sets the build back to exactly what it was doing before. Also, a comment and TODO were added in the src/CMakeLists.txt file to help explain. llvm-svn: 274052
* Fix typoKrzysztof Parzyszek2016-06-281-1/+1
| | | | llvm-svn: 274051
* Fix unreasonably-precise CHECK.Richard Smith2016-06-281-2/+2
| | | | llvm-svn: 274050
* P0136R1, DR1573, DR1645, DR1715, DR1736, DR1903, DR1941, DR1959, DR1991:Richard Smith2016-06-2872-931/+2754
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Replace inheriting constructors implementation with new approach, voted into C++ last year as a DR against C++11. Instead of synthesizing a set of derived class constructors for each inherited base class constructor, we make the constructors of the base class visible to constructor lookup in the derived class, using the normal rules for using-declarations. For constructors, UsingShadowDecl now has a ConstructorUsingShadowDecl derived class that tracks the requisite additional information. We create shadow constructors (not found by name lookup) in the derived class to model the actual initialization, and have a new expression node, CXXInheritedCtorInitExpr, to model the initialization of a base class from such a constructor. (This initialization is special because it performs real perfect forwarding of arguments.) In cases where argument forwarding is not possible (for inalloca calls, variadic calls, and calls with callee parameter cleanup), the shadow inheriting constructor is not emitted and instead we directly emit the initialization code into the caller of the inherited constructor. Note that this new model is not perfectly compatible with the old model in some corner cases. In particular: * if B inherits a private constructor from A, and C uses that constructor to construct a B, then we previously required that A befriends B and B befriends C, but the new rules require A to befriend C directly, and * if a derived class has its own constructors (and so its implicit default constructor is suppressed), it may still inherit a default constructor from a base class llvm-svn: 274049
* [lld][MachO] Remove SimpleFile::definedAtoms().Lang Hames2016-06-283-15/+12
| | | | | | This method just duplicates the functionality of SimpleFile::defined(). llvm-svn: 274048
* minimize regression tests and update checksSanjay Patel2016-06-281-42/+40
| | | | llvm-svn: 274047
* minimize regression tests and update checksSanjay Patel2016-06-281-70/+74
| | | | llvm-svn: 274046
* [CMake] Connect check-compiler-rt to check-allChris Bieneman2016-06-281-1/+2
| | | | | | | | When using the LLVM_BUILD_EXTERNAL_COMPILER_RT option with LLVM_ENABLE_TESTS we should also bind check-compiler-rt to check-all so that the compiler-rt tests run too. llvm-svn: 274045
* Update the expected masked load/store intrinsics names in testsArtur Pilipenko2016-06-284-84/+84
| | | | | | The mangling of their names was changed in order to support arbitrary addrspace pointers as arguments in rL274043. llvm-svn: 274044
* Support arbitrary addrspace pointers in masked load/store intrinsicsArtur Pilipenko2016-06-2812-206/+338
| | | | | | | | | | | | | | This is a resubmittion of 263158 change after fixing the existing problem with intrinsics mangling (see LTO and intrinsics mangling llvm-dev thread for details). This patch fixes the problem which occurs when loop-vectorize tries to use @llvm.masked.load/store intrinsic for a non-default addrspace pointer. It fails with "Calling a function with a bad signature!" assertion in CallInst constructor because it tries to pass a non-default addrspace pointer to the pointer argument which has default addrspace. The fix is to add pointer type as another overloaded type to @llvm.masked.load/store intrinsics. Reviewed By: reames Differential Revision: http://reviews.llvm.org/D17270 llvm-svn: 274043
* [lanai] Update ELF number to correspond to the assigned number.Jacques Pienaar2016-06-284-6/+2
| | | | | | Change EM_LANAI to correspond to machine number assigned by Xinuos. llvm-svn: 274042
* NFC. Test commit, remove a redundant empty line in Tooling.cppArtur Pilipenko2016-06-281-1/+0
| | | | llvm-svn: 274041
* [X86] Update a test with more explicit checks. NFC.Michael Kuperstein2016-06-281-54/+123
| | | | llvm-svn: 274040
* AMDGPU: Fix global isel crashesMatt Arsenault2016-06-282-6/+9
| | | | llvm-svn: 274039
* Typos. NFC.Chad Rosier2016-06-281-3/+3
| | | | llvm-svn: 274038
* 64-bit LEB values are not always correctly decoded due to a casting issue, ↵Greg Clayton2016-06-283-5/+5
| | | | | | | | now they are. <rdar://problem/27002247> llvm-svn: 274037
* [X86] Reorder source list alphabetically. NFC.Michael Kuperstein2016-06-281-4/+4
| | | | llvm-svn: 274036
* [CMake] Pass LLVM_LIT_ARGS into compiler-rt build.Chris Bieneman2016-06-281-0/+1
| | | | | | If top-level lit args are specified, you probably want that in the sub-project too. llvm-svn: 274035
* AMDGPU: Fix typoMatt Arsenault2016-06-281-7/+6
| | | | llvm-svn: 274034
* AMDGPU: Remove unused functionMatt Arsenault2016-06-282-33/+0
| | | | llvm-svn: 274033
* Process::StopForDetachOrDestroy should actually return an error if it can't ↵Jim Ingham2016-06-281-1/+1
| | | | | | | | | | stop the process. <rdar://problem/26990309> llvm-svn: 274032
* [CMake] [Apple Clang] Enable Compiler-RT tests on stage2 buildsChris Bieneman2016-06-281-2/+0
| | | | | | We want to be able to run the compiler-rt tests on stage2 build configurations in CI. This should enable that. llvm-svn: 274031
* [CMake] In r273957, I deleted a line that shouldn't have been removed.Chris Bieneman2016-06-281-0/+1
| | | | llvm-svn: 274030
* [llvm-cov] Create an index of reports in -output-dir modeVedant Kumar2016-06-286-93/+155
| | | | | | | | | | This index lists the reports available in the 'coverage' sub-directory. This will help navigate coverage output from large projects. This commit factors the file creation code out of SourceCoverageView and into CoveragePrinter. llvm-svn: 274029
* [llvm-cov] Minor cleanups (NFC)Vedant Kumar2016-06-282-3/+3
| | | | | | | | - Test the '-o' alias for -output-dir. - Use a helper method in a conditional. - Add a period. llvm-svn: 274028
* [llvm-cov] Avoid copying file paths multiple times (NFC)Vedant Kumar2016-06-283-4/+15
| | | | llvm-svn: 274027
* [llvm-cov] Rename ShowFormat to Format (NFC)Vedant Kumar2016-06-283-4/+4
| | | | | | | This makes it a bit more generic, in case we want to emit summary reports in different formats in the future. llvm-svn: 274026
* [llvm-cov] Move a check into a helper method (NFC)Vedant Kumar2016-06-282-1/+4
| | | | llvm-svn: 274025
* [X86] Make WRPKRU/RDPKRU pass -verify-machineinstrsDavid Majnemer2016-06-282-10/+7
| | | | | | | | | | | The original implementation attempted to zero registers using XOR %foo, %foo. This is problematic because it constitutes a read-modify-write of a register which might not be defined. Instead, use MOV32r0 to avoid these problems; expandPostRAPseudo does the right thing here. llvm-svn: 274024
* Don't pass a Reloc::Model to GVIsIndirectSymbol.Rafael Espindola2016-06-287-19/+10
| | | | | | | | It already has access to it. While at it, rename it to isGVIndirectSymbol. llvm-svn: 274023
* Don't pass Reloc::Model to places that already have it. NFC.Rafael Espindola2016-06-288-36/+31
| | | | llvm-svn: 274022
* Convert more cases to isPositionIndependent(). NFC.Rafael Espindola2016-06-289-22/+22
| | | | llvm-svn: 274021
* Delete dead code. NFC.Rafael Espindola2016-06-283-12/+8
| | | | llvm-svn: 274020
* [clang-tidy] Do not match on lambdas.Samuel Benzaquen2016-06-282-4/+12
| | | | | | | | We match on the generated FunctionDecl of the lambda and try to fix it. This causes a crash. The right behavior is to ignore lambdas, because they are a definition. llvm-svn: 274019
* Use WG21.link reflector to get to issues, rather than linking directlyMarshall Clow2016-06-281-129/+129
| | | | llvm-svn: 274018
* [SystemZ] Save/restore r6 and r7 if function contains landing pad.Marcin Koscielnicki2016-06-282-1/+9
| | | | | | | | This fixes PR27102. Differential Revision: http://reviews.llvm.org/D18541 llvm-svn: 274017
* Updated C++1Z status page with new work from Oulu WG21 meetingMarshall Clow2016-06-281-0/+79
| | | | llvm-svn: 274016
* [ASTMatchers] Add isLambda() matcher.Samuel Benzaquen2016-06-284-0/+31
| | | | llvm-svn: 274015
* Adapt the "objc-race.mm" test to use ignore_interceptors_accesses=1. All ↵Kuba Brecka2016-06-281-1/+1
| | | | | | Obj-C/Darwin tests currently need this to avoid false positives. llvm-svn: 274014
* [X86][AVX] Peek through bitcasts to find the source of broadcasts (reapplied)Simon Pilgrim2016-06-285-22/+54
| | | | | | | | | | | | | | AVX1 can only broadcast vectors as floats/doubles, so for 256-bit vectors we insert bitcasts if we are shuffling v8i32/v4i64 types. Unfortunately the presence of these bitcasts prevents the current broadcast lowering code from peeking through cases where we have concatenated / extracted vectors to create the 256-bit vectors. This patch allows us to peek through bitcasts as long as the number of elements doesn't change (i.e. element bitwidth is the same) so the broadcast index is not affected. Note this bitcast peek is different from the stage later on which doesn't care about the type and is just trying to find a load node. As we're being more aggressive with bitcasts, we also need to ensure that the broadcast type is correctly bitcasted Differential Revision: http://reviews.llvm.org/D21660 llvm-svn: 274013
* [SPARC] Allows inlining of atomics for Sparc32 with appropriate store barrier.Chris Dewhurst2016-06-282-0/+14
| | | | | | The final change is required to extend the back-end's AtomicExpandPass that was implemented for Sparc (64 bit) and later extended for Sparc (32 bit). llvm-svn: 274012
* Fix "not all control paths return a value" warning on MSVCSimon Pilgrim2016-06-281-0/+1
| | | | llvm-svn: 274011
* Adding a comment to explain r273886 ("Stop unwinding the stack when a ↵Kuba Brecka2016-06-282-0/+6
| | | | | | close-to-zero PC is found"). NFC. llvm-svn: 274010
* Convert 2 more uses to shouldAssumeDSOLocal(). NFC.Rafael Espindola2016-06-282-4/+4
| | | | llvm-svn: 274009
* Fixed MSVC unresolved symbol error due to an incorrectly declared externSimon Pilgrim2016-06-281-1/+1
| | | | llvm-svn: 274007
* [modules] Separate intrinsic_gen dependent headers from module LLVM_IR.Vassil Vassilev2016-06-281-0/+37
| | | | | | | | | | Some headers in IR depend on tablegen generated code. Modules builds triggered generation of the LLVM_IR module (including headers dependant on intrinsic_gen), imposing a unnecessary build dependency. Reviewed by Richard Smith. llvm-svn: 274006
* Use isPositionIndependent(). NFC.Rafael Espindola2016-06-281-2/+1
| | | | llvm-svn: 274005
OpenPOWER on IntegriCloud