summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* InstrProf: Always emit a coverage region for the condition of an ifJustin Bogner2015-02-1916-42/+80
| | | | | | | | When tools like llvm-cov show regions, it's much easier to understand what's happening if the condition of an if shows a counter as well as the body. llvm-svn: 229813
* Fix a test case.Larisse Voufo2015-02-191-6/+6
| | | | llvm-svn: 229812
* [Headers] Add tests for _mm256_insert_epi64 and fix its definitionFilipe Cabecinhas2015-02-192-1/+25
| | | | | | | | | | | | | | | | Summary: The definition for _mm256_insert_epi64 was taking an int, which would get truncated before being inserted in the vector. Original patch by Joshua Magee! Reviewers: bruno, craig.topper Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D7179 llvm-svn: 229811
* Mark more tuple tests as unsupported in C++98 && C++03Eric Fiselier2015-02-192-0/+4
| | | | llvm-svn: 229810
* Itanium ABI: Properly qualify the destructor-nameDavid Majnemer2015-02-192-207/+184
| | | | | | | We didn't have enough qualificaiton before the scope specifier and we had too much qualification in the destructor name itself. llvm-svn: 229809
* [libcxx] Mark most tuple tests UNSUPPORTED for c++03 and c++98.Eric Fiselier2015-02-1952-12/+103
| | | | | | | | | | | | | | Summary: No declaration for the type `tuple` is given in c++03 or c++98 modes. Mark all tests that use the actual `tuple` type as UNSUPPORTED. Reviewers: jroelofs, mclow.lists, danalbert Reviewed By: danalbert Subscribers: cfe-commits Differential Revision: http://reviews.llvm.org/D5956 llvm-svn: 229808
* [Orc][Kaleidoscope] Make the 'fully lazy' orc kaleidoscope tutorial lazier ↵Lang Hames2015-02-191-26/+45
| | | | | | | | still. The new JIT doesn't IRGen stubs until they're referenced. llvm-svn: 229807
* [Orc] Fix a bug in the compile callback manager: trampoline ids need to be fixedLang Hames2015-02-191-1/+1
| | | | | | up before returning them to the available pool. llvm-svn: 229806
* Remove the local subtarget variable from the SystemZ asm printerEric Christopher2015-02-192-8/+3
| | | | | | and update the two calls accordingly. llvm-svn: 229805
* Remove a few more calls to TargetMachine::getSubtarget from theEric Christopher2015-02-192-4/+4
| | | | | | R600 port. llvm-svn: 229804
* Grab the subtarget off of the machine function for the R600Eric Christopher2015-02-192-15/+14
| | | | | | asm printer and clean up a bunch of uses. llvm-svn: 229803
* Remove the DisasmEnabled AsmPrinter variable and just look itEric Christopher2015-02-193-6/+3
| | | | | | | up on the subtarget where it's set anyhow than looking it up 2-3 times in the same place. llvm-svn: 229802
* Improve our handling of rtti/sanitize=vptr/sanitize=undefinedFilipe Cabecinhas2015-02-197-71/+129
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This patch removes the huge blob of code that is dealing with rtti/exceptions/sanitizers and replaces it with: A ToolChain function which, for a given set of Args, figures out if rtti should be: - enabled - disabled implicitly - disabled explicitly A change in the way SanitizerArgs figures out what sanitizers to enable (or if it should error out, or warn); And a check for exceptions/rtti interaction inside addExceptionArgs. The RTTIMode algorithm is: - If -mkernel, -fapple-kext, or -fno-rtti are passed, rtti was disabled explicitly; - If -frtti was passed or we're not targetting the PS4, rtti is enabled; - If -fexceptions or -fcxx-exceptions was passed and we're targetting the PS4, rtti was enabled implicitly; - If we're targetting the PS4, rtti is disabled implicitly; - Otherwise, rtti is enabled; Since the only flag needed to pass to -cc1 is -fno-rtti if we want to disable it, there's no problem in saying rtti is enabled if we're compiling C code, so we don't look at the input file type. addExceptionArgs now looks at the RTTIMode and warns that rtti is being enabled implicitly if targetting the PS4 and exceptions are on. It also errors out if, targetting the PS4, -fno-rtti was passed, and exceptions were turned on. SanitizerArgs now errors out if rtti was disabled explicitly and the vptr sanitizer was enabled implicitly, but just turns off vptr if rtti is disabled but -fsanitize=undefined was passed. Also fixed tests, removed duplicate name from addExceptionArgs comment, and added one or two surrounding lines when running clang-format. This changes test/Driver/fsanitize.c to make it not expect a warning when passed -fsanitize=undefined -fno-rtti, but expect vptr to not be on. Removed all users and definition of SanitizerArgs::sanitizesVptr(). Reviewers: samsonov Subscribers: llvm-commits, samsonov, rsmith Differential Revision: http://reviews.llvm.org/D7525 llvm-svn: 229801
* MC: Remove NullStreamer hook, as it is redundant with NullTargetStreamer.Peter Collingbourne2015-02-195-37/+15
| | | | llvm-svn: 229799
* llvm-mc: Use Target::createNullStreamer to fix crashes on target-specific ↵Peter Collingbourne2015-02-192-1/+3
| | | | | | asm directives. llvm-svn: 229798
* Introduce Target::createNullTargetStreamer and use it from IRObjectFile.Peter Collingbourne2015-02-196-0/+44
| | | | | | | | | A null MCTargetStreamer allows IRObjectFile to ignore target-specific directives. Previously we were crashing. Differential Revision: http://reviews.llvm.org/D7711 llvm-svn: 229797
* [objc-arc] Introduce the concept of RCIdentity and rename all relevant ↵Michael Gottesman2015-02-195-53/+60
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | functions to use that name. NFC. The RCIdentity root ("Reference Count Identity Root") of a value V is a dominating value U for which retaining or releasing U is equivalent to retaining or releasing V. In other words, ARC operations on V are equivalent to ARC operations on U. This is a useful property to ascertain since we can use this in the ARC optimizer to make it easier to match up ARC operations by always mapping ARC operations to RCIdentityRoots instead of pointers themselves. Then we perform pairing of retains, releases which are applied to the same RCIdentityRoot. In general, the two ways that we see RCIdentical values in ObjC are via: 1. PointerCasts 2. Forwarding Calls that return their argument verbatim. As such in ObjC, two RCIdentical pointers must always point to the same memory location. Previously this concept was implicit in the code and various methods that dealt with this concept were given functional names that did not conform to any name in the "ARC" model. This often times resulted in code that was hard for the non-ARC acquanted to understand resulting in unhappiness and confusion. llvm-svn: 229796
* [objc-arc-contract] Rename contractRelease => ↵Michael Gottesman2015-02-191-4/+8
| | | | | | | | tryToContractReleaseIntoStoreStrong. NFC. Makes it clearer what this method is actually supposed to do. llvm-svn: 229795
* [objc-arc-contract] Refactor out tryToPeepholeInstruction into its own ↵Michael Gottesman2015-02-191-58/+85
| | | | | | | | | method. NFC. The main method of ObjCARCContract is really large and busy. By refactoring this out, it becomes easier to reason about. llvm-svn: 229794
* [objc-arc-contract] Reorganize the code a bit and make the debug output ↵Michael Gottesman2015-02-191-63/+73
| | | | | | easier to read. llvm-svn: 229793
* PR22566: a conversion from a floating-point type to bool is a narrowing ↵Richard Smith2015-02-192-7/+16
| | | | | | conversion. llvm-svn: 229792
* IR: Drop scope from MDTemplateParameterDuncan P. N. Exon Smith2015-02-1915-147/+97
| | | | | | | | | | Follow-up to r229740, which removed `DITemplate*::getContext()` after my upgrade script revealed that scopes are always `nullptr` for template parameters. This is the other shoe: drop `scope:` from `MDTemplateParameter` and its two subclasses. (Note: a bitcode upgrade would be pointless, since the hierarchy hasn't been moved into place.) llvm-svn: 229791
* Avoid using a self-referential initializer and fix up uses.Eric Christopher2015-02-191-3/+3
| | | | llvm-svn: 229790
* 80-column fixups.Eric Christopher2015-02-191-8/+7
| | | | llvm-svn: 229789
* Allow errors on use of a private module header to be disabled, to better ↵Richard Smith2015-02-193-6/+8
| | | | | | support incremental transition to modules. llvm-svn: 229788
* Remove all use of is64bit off of NVPTXSubtarget and clean up codeEric Christopher2015-02-1912-89/+61
| | | | | | | accordingly. This changes the constructors of a number of classes that don't need to know the subtarget's 64-bitness. llvm-svn: 229787
* Remove all use of getDrvInterface off of NVPTXSubtarget and cleanEric Christopher2015-02-194-51/+23
| | | | | | | up code accordingly. Delete code that was checking for all cases of an enum. llvm-svn: 229786
* Migrate the NVPTX backend asm printer to a per function subtarget.Eric Christopher2015-02-196-58/+74
| | | | | | | | | | | This involved moving two non-subtarget dependent features (64-bitness and the driver interface) to the NVPTX target machine and updating the uses (or migrating around the subtarget use for ease of review). Otherwise use the cached subtarget or create a default subtarget based on the TargetMachine cpu and feature string for the module level assembler emission. llvm-svn: 229785
* A few minor path fixes for Windows.Zachary Turner2015-02-181-1/+7
| | | | | | | | | | | | When launching argdumper, there are a few problems with the current logic. First, on Windows, the file is called argdumper.exe, not argdumper. Second, Windows paths have backslashes in them, and JSON treats <backslash><char> as an escape sequence. To fix the second problem, on Windows we convert backslashes to forward slashes, since backslash isn't a valid filename character anyway this shouldn't be a problem. llvm-svn: 229784
* clang-format: Space and triple angle braces.Jacques Pienaar2015-02-183-35/+103
| | | | | | Committing patch http://reviews.llvm.org/D6800. llvm-svn: 229783
* [x86] Merge checks for a recently added test case that is the same onChandler Carruth2015-02-181-32/+9
| | | | | | all SSE variants and AVX variants. llvm-svn: 229770
* IR: Allow MDSubrange to have 'count: -1'Duncan P. N. Exon Smith2015-02-184-3/+28
| | | | | | | | | | | | | | It turns out that `count: -1` is a special value indicating an empty array, such as `Values` in: struct T { unsigned Count; int Values[]; }; Handle it. llvm-svn: 229769
* Add an IR-to-IR test for dwarf EH preparation using optReid Kleckner2015-02-184-0/+61
| | | | | | | This tests the simple resume instruction elimination logic that we have before making some changes to it. llvm-svn: 229768
* Fix TestDataFormatter* on LinuxVince Harron2015-02-181-1/+1
| | | | | | | | | | | llvm::StringRef doesn't make a copy of a string, it just holds a reference. When special_directions_stream went out of scope, special_directions was holding on to a stale pointer. Moving special_directions_stream into a higher scope to keep special_directions pointing to a valid string. llvm-svn: 229767
* Fixed TestProcessLaunch.py for remote targetsVince Harron2015-02-181-5/+12
| | | | | | Just needed to copy stdio redirect files to/from target llvm-svn: 229766
* [Orc][Kaleidoscope] Fix a fixme - no reason we can't use C++14 in the tutorials.Lang Hames2015-02-181-11/+14
| | | | llvm-svn: 229765
* Fixed remaining remote target failures in TestSettings.pyVince Harron2015-02-181-3/+5
| | | | | | | | needed to copy an output file back from remote target skipped test that expects host env vars to be inherited by target processes llvm-svn: 229764
* Fix SettingsCommandTestCase.test_set_error_output_pathVince Harron2015-02-184-13/+29
| | | | | | | | | | target.error-path (and output-path) were getting resolved on the local file system, which doesn't make any sense for remote targets So this patch prevents file paths from being resolved on the host system. llvm-svn: 229763
* PECOFF: Fix symbol aliasesRui Ueyama2015-02-182-14/+18
| | | | | | | | | | | | | | | | | | | | Weak aliases defined using /alternatename command line option were getting wrong RVAs in the final output because of wrong atom ordinal. Alias atoms were assigned large ordinals than any other regular atoms because they were instantiated after other atoms and just got new (larger) ordinals. Atoms are sorted by its file and atom ordinals in the order pass. Alias atoms were located after all other atoms in the same file. An alias atom's ordinal needs to be smaller than its alias target but larger than the atom appeared before the target -- so that the alias is located between the two. Since an alias has no size, the alias target will be located at the same location as the alias. In this patch, I made a gap between two regular atoms so that we can put aliases after instantiating them (without re-numbering existing atoms). llvm-svn: 229762
* [Orc][Kaleidoscope] Make the Orc/Kaleidoscope tutorials easier to build onLang Hames2015-02-184-12/+40
| | | | | | Darwin. llvm-svn: 229761
* [Orc][Kaleidoscope] Make sure to look for the mangled name when updating theLang Hames2015-02-181-1/+1
| | | | | | function body pointer in the fully lazy orc/kaleidoscope tutorial. llvm-svn: 229760
* [Objdump] Fixing crash when printing symbols in ELF sections with special types.Colin LeMahieu2015-02-183-2/+8
| | | | llvm-svn: 229759
* Style and formatting fixes for r229715Andrew Kaylor2015-02-182-18/+14
| | | | llvm-svn: 229758
* Remove support for building sanitizers from Makefile/autoconf build on Linux.Alexey Samsonov2015-02-188-176/+9
| | | | | | | This is a re-application of r229554 restricted to Linux build only. Apple still uses Makefile/autoconf to build Clang and sanitizers. llvm-svn: 229756
* Remove support for building sanitizers from Makefile/autoconf build on Linux.Alexey Samsonov2015-02-181-12/+4
| | | | | | | This is a re-application of r229554 restricted to Linux build only. Apple still uses Makefile/autoconf to build Clang and sanitizers. llvm-svn: 229755
* [docs] Recommend to use CMake for building sanitizers.Alexey Samsonov2015-02-183-6/+3
| | | | llvm-svn: 229754
* CMake: Fix add_lit_target for the case where a test suite has zero target ↵Peter Collingbourne2015-02-181-2/+4
| | | | | | | | | dependencies. This can happen with a standalone project containing a test suite with no internal dependencies. llvm-svn: 229753
* R600/SI: Fix READLANE and WRITELANE lane select for VIMarek Olsak2015-02-182-6/+6
| | | | | | | | | | | | VOP2 declares vsrc1, but VOP3 declares src1. We can't use the same "ins" if the operands have different names in VOP2 and VOP3 encodings. This fixes a hang in geometry shaders which spill M0 on VI. (BTW it doesn't look like M0 needs spilling and the spilling seems duplicated 3 times) llvm-svn: 229752
* R600/SI: Simplify verification of AMDGPU::OPERAND_REG_INLINE_CMarek Olsak2015-02-181-8/+6
| | | | llvm-svn: 229751
* R600/SI: Remove explicit VOP operand checkingMarek Olsak2015-02-181-28/+0
| | | | | | This should be handled by the OperandType checking. llvm-svn: 229750
OpenPOWER on IntegriCloud