summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Teach the table generated emitPseudoExpansionLowering function to not emit a ↵Aaron Ballman2014-05-231-61/+65
| | | | | | switch statement containing only a default statement (and no cases). Updated some of the code to use range-based for loops as well. No functional changes. llvm-svn: 209521
* Fix bug 19840, where some tests were not testing what we wanted. Thanks to ↵Marshall Clow2014-05-232-12/+12
| | | | | | Eric for the bug report llvm-svn: 209520
* Aliases are always definition, delete dead code.Rafael Espindola2014-05-231-8/+2
| | | | | | While at it, use a range loop. llvm-svn: 209519
* Delete dead code.Rafael Espindola2014-05-231-4/+0
| | | | | | GV is never used past this point. This was probably a copy and paste error. llvm-svn: 209518
* [ubsan] temporary disable testing with -m32 as there are bots that don't ↵Kostya Serebryany2014-05-231-11/+11
| | | | | | support it llvm-svn: 209517
* [ubsan] handle long double in 32-bit mode; part of the patch by Marek PolacekKostya Serebryany2014-05-233-0/+24
| | | | llvm-svn: 209516
* [test] Force a triple in the pragma optimize test due to expected mangled names.Dario Domizioli2014-05-231-1/+1
| | | | | | | No functional change to the compiler. This should just make the test pass on all buildbots. llvm-svn: 209515
* [mips] Work around inconsistency in llvm-mc's placement of fixup markersDaniel Sanders2014-05-235-13/+82
| | | | | | | | | | | | | | | | | | | Summary: Add a second fixup table to MipsAsmBackend::getFixupKindInfo() to correctly position llvm-mc's fixup placeholders for big-endian. See PR19836 for full details of the issue. To summarize, the fixup placeholders do not account for endianness properly and the implementations of getFixupKindInfo() for each target are measuring MCFixupKindInfo.TargetOffset from different ends of the instruction encoding to compensate. Reviewers: jkolek, zoran.jovanovic, vmedic Reviewed By: vmedic Differential Revision: http://reviews.llvm.org/D3889 llvm-svn: 209514
* [mips][mips64r6] t(eq|ge|lt|ne)i and t(ge|lt)iu are not available in ↵Daniel Sanders2014-05-235-7/+49
| | | | | | | | | | | | | | MIPS32r6/MIPS64r6 Summary: Depends on D3872 Reviewers: jkolek, zoran.jovanovic, vmedic Reviewed By: vmedic Differential Revision: http://reviews.llvm.org/D3891 llvm-svn: 209513
* [mips][mips64r6] [ls][dw][lr] are not available in MIPS32r6/MIPS64r6Daniel Sanders2014-05-2315-143/+602
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: Instead the system is required to provide some means of handling unaligned load/store without special instructions. Options include full hardware support, full trap-and-emulate, and hybrids such as hardware support within a cache line and trap-and-emulate for multi-line accesses. MipsSETargetLowering::allowsUnalignedMemoryAccesses() has been configured to assume that unaligned accesses are 'fast' on the basis that I expect few hardware implementations will opt for pure-software handling of unaligned accesses. The ones that do handle it purely in software can override this. mips64-load-store-left-right.ll has been merged into load-store-left-right.ll The stricter testing revealed a Bits!=Bytes bug in passByValArg(). This has been fixed and the variables renamed to clarify the units they hold. Reviewers: zoran.jovanovic, jkolek, vmedic Reviewed By: vmedic Differential Revision: http://reviews.llvm.org/D3872 llvm-svn: 209512
* PR19352 - getLocation() points to the wrong position for FriendDeclsNikola Smiljanic2014-05-231-1/+3
| | | | llvm-svn: 209511
* Implemented support for "pragma clang optimize on/off", based on attribute ↵Dario Domizioli2014-05-2314-1/+319
| | | | | | | | | | | | | | | | 'optnone'. This patch implements support for selectively disabling optimizations on a range of function definitions through a pragma. The implementation is that all function definitions in the range are decorated with attribute 'optnone'. #pragma clang optimize off // All function definitions in here are decorated with 'optnone'. #pragma clang optimize on // Compilation resumes as normal. llvm-svn: 209510
* [asan] fix a test following r209508Kostya Serebryany2014-05-231-1/+3
| | | | llvm-svn: 209509
* [asan] properly instrument memory accesses that have small alignment ↵Kostya Serebryany2014-05-234-18/+44
| | | | | | (smaller than min(8,size)) by making two checks instead of one. This may slowdown some cases, e.g. long long on 32-bit or wide loads produced after loop unrolling. The benefit is higher sencitivity. llvm-svn: 209508
* Updated the llvm.mem.parallel_loop_access semantics to include the possibilityPekka Jaaskelainen2014-05-231-9/+23
| | | | | | | | | to have only some of the loop's memory instructions be annotated and still _help_ the loop carried dependence analysis. This was discussed in the llvmdev ML (topic: "parallel loop metadata question"). llvm-svn: 209507
* Fixup sys::getHostCPUFeatures crypto names so it doesn't clash with kernel ↵Bradley Smith2014-05-231-9/+9
| | | | | | headers llvm-svn: 209506
* clang-tidy: Only add 'override' before inlined bodies.Daniel Jasper2014-05-232-1/+5
| | | | llvm-svn: 209505
* [YAML] Add an optional argument `EnumMask` to the `yaml::IO::bitSetCase()`.Simon Atanasyan2014-05-234-19/+70
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Some bit-set fields used in ELF file headers in fact contain two parts. The first one is a regular bit-field. The second one is an enumeraion. For example ELF header `e_flags` for MIPS target might contain the following values: Bit-set values: EF_MIPS_NOREORDER = 0x00000001 EF_MIPS_PIC = 0x00000002 EF_MIPS_CPIC = 0x00000004 EF_MIPS_ABI2 = 0x00000020 Enumeration: EF_MIPS_ARCH_32 = 0x50000000 EF_MIPS_ARCH_64 = 0x60000000 EF_MIPS_ARCH_32R2 = 0x70000000 EF_MIPS_ARCH_64R2 = 0x80000000 For printing bit-sets we use the `yaml::IO::bitSetCase()`. It does not support bit-set/enumeration combinations and prints too many flags from an enumeration part. This patch fixes this problem. New method `yaml::IO::maskedBitSetCase()` handle "enumeration" part of bitset defined by provided mask. Patch reviewed by Nick Kledzik and Sean Silva. llvm-svn: 209504
* Fix '-main-file-name <name>' so that it is used for the ModuleID.Robert Lytton2014-05-232-1/+10
| | | | | | | | | Summary: Previously, you could not specify the original file name when passing a preprocessed file into the compiler Now you can use 'clang -Xclang -main-file-name -Xclang <original file name> ...' Or 'clang -cc1 -main-file-name <original file name> ...' llvm-svn: 209503
* Typedef NumeredTypesMapTy is not used anywhere.Yaron Keren2014-05-231-4/+0
| | | | llvm-svn: 209502
* Test commit.Jingyue Wu2014-05-231-1/+1
| | | | | | The keyword "virtual" is not necessary. llvm-svn: 209501
* llvm-ar: Output the file we errored on.Filipe Cabecinhas2014-05-232-1/+6
| | | | llvm-svn: 209500
* Rename a couple of variables to be more accurate.David Blaikie2014-05-231-8/+8
| | | | | | | | It's not really a "ScopeDIE", as such - it's the abstract function definition's DIE. And we usually use "SP" for subprograms, rather than "Sub". llvm-svn: 209499
* DebugInfo: Fix cross-CU references for scopes (and variables within those ↵David Blaikie2014-05-232-3/+10
| | | | | | | | scopes) in abstract definitions of cross-CU inlined functions Found by Adrian Prantl during post-commit review of r209335. llvm-svn: 209498
* Use short identifier.Rui Ueyama2014-05-231-7/+7
| | | | llvm-svn: 209497
* MC: remove unnecessary restriction on testsSaleem Abdulrasool2014-05-237-7/+0
| | | | | | | | | | Rafael correctly pointed out that the restriction is unnecessary. Although the tests are intended to ensure that we dont abort due to an assertion, running the tests in all modes is better since it also ensures that we dont crash without assertions. Always run these tests to ensure that we can handle invalid input correctly. llvm-svn: 209496
* [ARM64] Fix a bug in shuffle vector lowering to generate corect vext ISD ↵Jiangning Liu2014-05-232-15/+186
| | | | | | with swapped input vectors. llvm-svn: 209495
* Fixed the Symbol code to resolve the callable addressSean Callanan2014-05-233-27/+63
| | | | | | | | | | of the symbol itself rather than forcing clients to do it. This simplifies the logic for the expression parser a great deal. <rdar://problem/16935324> llvm-svn: 209494
* Instead of having an UnwindTable own a single assembly profiler, Jason Molenda2014-05-234-24/+40
| | | | | | | | | | | and sharing it with all of its FuncUnwinders, have each FuncUnwinder create an AssemblyProfiler on demand as needed. I was worried that the cost of creating the llvm disassemblers would be high for this approach but it's not supposed to be an expensive operation, and it means we don't need to add locks around this section of code. <rdar://problem/16992332> llvm-svn: 209493
* Revert r209488; Greg suggests a different approach.Jason Molenda2014-05-234-28/+13
| | | | llvm-svn: 209492
* Clean DiagRanges. Fix a possible problem introduced in r209468.Alexander Kornienko2014-05-231-0/+1
| | | | llvm-svn: 209491
* Attempt to placate compilers that warn on casts between pointer-to-object andRichard Smith2014-05-231-20/+20
| | | | | | pointer-to-function types. llvm-svn: 209490
* Fix a bug in xmmintrin.h.Akira Hatanaka2014-05-231-1/+1
| | | | | | | | | | The last step of _mm_cvtps_pi16 should use _mm_packs_pi32, which is a function that reads two __m64 values and packs four 32-bit values into four 16-bit values. <rdar://problem/16873717> llvm-svn: 209489
* The UnwindTable (one per module) used to hand out shared pointersJason Molenda2014-05-234-13/+28
| | | | | | | | | | | | | | | to its unwind assembly profiler to all of the FuncUnwinders (one per symbol) under it. If lldb is running multiple targets, you could get two different FuncUnwinders in the same Module trying to use the same llvm disassembler simultaneously and that may be a re-entrancy problem. Instead, the UnwindTable has the unwind assembly profiler and when the FuncUnwinders want to use it, they get exclusive access to the assembly profiler until they're done using it. <rdar://problem/16992332> llvm-svn: 209488
* ScalarEvolution: Fix handling of AddRecs in isKnownPredicateJustin Bogner2014-05-232-12/+54
| | | | | | | | | | | | | ScalarEvolution::isKnownPredicate() can wrongly reduce a comparison when both the LHS and RHS are SCEVAddRecExprs. This checks that both LHS and RHS are guarded in the case when both are SCEVAddRecExprs. The test case is against indvars because I could not find a way to directly test SCEV. Patch by Sanjay Patel! llvm-svn: 209487
* [PECOFF] Make a separate pass for /alternatename symbols.Rui Ueyama2014-05-233-29/+58
| | | | | | | | | | | | | | | | | | | | | | | /alternatename is a command line option to define a weak alias. You can use it as /alternatename:foo=bar to define "foo" as a weak alias for "bar". Because it's a command line option, the weak alias mapping is in the LinkingContext object, and not in a object file being read. Previously, we looked up the mapping each time we read a new symbol from a file, to check if there is a weak alias defined for the symbol. That's not wrong, but had made function signature's a bit complicated -- we had to pass the mapping object to many functions. Now their parameter lists are much cleaner. This also has another (unrealized) benefit. parseFile() now read a file and then add alias symbols to the file. In the first pass a LinkingContext object is not used at all. That should make it easy to read files from archive files speculatively, as the first pass is free from side effect. llvm-svn: 209486
* Make sure SectionLoadHistory::GetCurrentSectionLoadList () is thread safe.Greg Clayton2014-05-221-0/+1
| | | | | | <rdar://problem/15818525> llvm-svn: 209485
* Don't set unnamed_addr in CreateRuntimeVariable.Rafael Espindola2014-05-223-10/+4
| | | | | | | | | | | | | This was fairly broken. For example, @__dso_handle would or would not get an unnamed_addr depending on how many global destructors were used in a translation unit. The consensus was that not every runtime variable is unnamed_addr and that __dso_handle handle should not be, so just don't add unnamed_addr in CreateRuntimeVariable. llvm-svn: 209484
* [Graph Writer] Limit the length of the graph name because Windows can't ↵Michael J. Spencer2014-05-221-1/+4
| | | | | | | | | | | | | handle it. Windows can't handle paths longer than 260 code points without \\?\. Even with \\?\ it can't handle path components longer than 255 code points. So limit graph names to the arbitrary length of 140. Random characters are still added to the end, so it's ok if graph names collide. Differential Revision: http://reviews.llvm.org/D3883 llvm-svn: 209483
* Avoid allocating extra memory to handle the lazy definition data pointer forRichard Smith2014-05-224-14/+35
| | | | | | CXXRecordDecls when modules is enabled. llvm-svn: 209482
* Make these bool bitfields.Eric Christopher2014-05-221-7/+7
| | | | llvm-svn: 209481
* Don't reduce the stack protector level given -fstack-protector.Rafael Espindola2014-05-222-3/+7
| | | | | | | | | Before -fstack-protector would always force a level of 1, even if the default was 2. Patch by Brad Smith. llvm-svn: 209479
* [RuntimeDyld] Teach RuntimeDyldMachO how to handle scattered VANILLA relocs onLang Hames2014-05-222-9/+61
| | | | | | | | | | | | | | | | | | | | i386. This fixes two more MCJIT regression tests on i386: ExecutionEngine/MCJIT/2003-05-06-LivenessClobber.ll ExecutionEngine/MCJIT/2013-04-04-RelocAddend.ll The implementation of processScatteredVANILLA is tasteless (*ba-dum-ching*), but I'm working on a substantial tidy-up of RuntimeDyldMachO that should improve things. This patch also fixes a type-o in RuntimeDyldMachO::processSECTDIFFRelocation, and teaches that method to skip over the PAIR reloc following the SECTDIFF. <rdar://problem/16961886> llvm-svn: 209478
* Use error_code::success() instead of make_error_code(llvm::errc::success).Alexander Kornienko2014-05-221-1/+1
| | | | llvm-svn: 209477
* [TSan] ifdef out certain functions if 128-bit ints are not supported.Alexey Samsonov2014-05-221-0/+6
| | | | llvm-svn: 209476
* Move alias symbols from ELFLinkingContext to LinkingContext.Rui Ueyama2014-05-225-88/+124
| | | | | | | | | | Alias symbols are SimpleDefinedAtoms and are platform neutral. They don't have to belong ELF. This patch is to make it available to all platforms. No functionality change intended. Differential Revision: http://reviews.llvm.org/D3862 llvm-svn: 209475
* Unify the name of compiler-rt builtins library on Linux.Alexey Samsonov2014-05-223-7/+8
| | | | | | | | | | Call it "libclang_rt.builtins-<arch>.a" to be consistent with sanitizers/profile libraries naming. Modify Makefile and CMake build systems and Clang driver accordingly. Fixes PR19822. llvm-svn: 209474
* Unify the name of compiler-rt builtins library on Linux.Alexey Samsonov2014-05-222-12/+12
| | | | | | | | | | Call it "libclang_rt.builtins-<arch>.a" to be consistent with sanitizers/profile libraries naming. Modify Makefile and CMake build systems and Clang driver accordingly. Fixes PR19822. llvm-svn: 209473
* If a class template specialization from one module has its definitionRichard Smith2014-05-225-0/+34
| | | | | | | | | instantiated in another module, and the instantiation uses a partial specialization, include the partial specialization and its template arguments in the update record. We'll need them if someone imports the second module and tries to instantiate a member of the template. llvm-svn: 209472
* Don't warn about undefined inline functions if they're dllexport/importHans Wennborg2014-05-222-1/+14
| | | | llvm-svn: 209471
OpenPOWER on IntegriCloud