summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* verify-di: Add back braces for MSVC compatabilityDuncan P. N. Exon Smith2014-04-151-5/+12
| | | | | | | | Fixup after r206300. <rdar://problem/15500563> llvm-svn: 206305
* verify-di: Implement DebugInfoVerifierDuncan P. N. Exon Smith2014-04-1510-53/+137
| | | | | | | | | | | | | | | | | | | | | Implement DebugInfoVerifier, which steals verification relying on DebugInfoFinder from Verifier. - Adds LegacyDebugInfoVerifierPassPass, a ModulePass which wraps DebugInfoVerifier. Uses -verify-di command-line flag. - Change verifyModule() to invoke DebugInfoVerifier as well as Verifier. - Add a call to createDebugInfoVerifierPass() wherever there was a call to createVerifierPass(). This implementation as a module pass should sidestep efficiency issues, allowing us to turn debug info verification back on. <rdar://problem/15500563> llvm-svn: 206300
* verify-di: split out VerifierSupportDuncan P. N. Exon Smith2014-04-151-57/+62
| | | | | | | | | Split out assertion and output helpers from Verifier in preparation for writing the DebugInfoVerifier. <rdar://problem/15500563> llvm-svn: 206299
* Use unique_ptr to manage PassInfo instances in the PassRegistryDavid Blaikie2014-04-151-8/+4
| | | | llvm-svn: 206297
* MipsAsmParser.cpp: Fix vg_leak in MipsOperand::CreateMem(). Mem.Base is ↵NAKAMURA Takumi2014-04-151-0/+16
| | | | | | managed by k_Memory itself. llvm-svn: 206293
* MipsAsmParser::ParseRegister(): Be responsible to delete an Operand on a ↵NAKAMURA Takumi2014-04-151-0/+2
| | | | | | temporary Operands. llvm-svn: 206292
* AArch64/ARM64: enable more AArch64 tests on ARM64.Tim Northover2014-04-1519-133/+168
| | | | | | No code changes for this bunch, just some test rejigs. llvm-svn: 206291
* AArch64/ARM64: add missing pattern for extending load.Tim Northover2014-04-152-39/+42
| | | | llvm-svn: 206290
* AArch64/ARM64: only mangle MOVZ/MOVN during encoding when neededTim Northover2014-04-153-9/+31
| | | | | | | | Sometimes we need emit the bits that would actually be a MOVN when producing a relocated MOVZ instruction (don't ask). But not always, a check which ARM64 got wrong until now. llvm-svn: 206289
* AArch64/ARM64: add support for large code-model jump tables.Tim Northover2014-04-153-2/+23
| | | | | | | I've left the MachO CodeGen as it is, there's a reasonable chance it should use the GOT like ConstPools, but I'm not certain. llvm-svn: 206288
* AArch64/ARM64: add patterns for various commutations of FNMADD.Tim Northover2014-04-152-0/+16
| | | | llvm-svn: 206287
* AArch64/ARM64: add half as a storage type on ARM64.Tim Northover2014-04-155-15/+20
| | | | | | | This brings it into line with the AArch64 behaviour and should open the way for certain OpenCL features. llvm-svn: 206286
* AArch64/ARM64: copy patterns for fixed-point conversionsTim Northover2014-04-153-15/+99
| | | | | | | | Code is mostly copied directly across, with a slight extension of the ISelDAGToDAG function so that it can cope with the floating-point constants being behind a litpool. llvm-svn: 206285
* ARM64: add constraints to various FastISel operationsTim Northover2014-04-153-10/+23
| | | | llvm-svn: 206284
* FastISel: constrain the RegClass of operands when emitting instructions.Tim Northover2014-04-153-27/+53
| | | | | | | | | | | ARM64 suffered multiple -verify-machineinstr failures (principally over the xsp/xzr issue) because FastISel was completely ignoring which subset of the general-purpose registers each instruction required. More fixes are coming in ARM64 specific FastISel, but this should cover the generic problems. llvm-svn: 206283
* AArch64/ARM64: add more arm64 lines to AArch64 regression testsTim Northover2014-04-154-19/+39
| | | | llvm-svn: 206282
* AArch64/ARM64: add dp tests from AArch64Tim Northover2014-04-154-11/+19
| | | | llvm-svn: 206281
* ARM64AsmParser.cpp: Fix vg_leak in MC/ARM64/fp-encoding.s.NAKAMURA Takumi2014-04-151-0/+2
| | | | llvm-svn: 206279
* Optional hash symbol feature support for ARM64Stepan Dyatkovskiy2014-04-152-16/+68
| | | | | | http://reviews.llvm.org/D3328 llvm-svn: 206276
* Current definition of subtract with immediate instruction aliases uses ↵Vladimir Medic2014-04-153-49/+14
| | | | | | CodeGenOnly defined instructions and post matcher expansion methods to emit real instructions add with immediate. However, they can directly alias add with immediate instruction and remove unnecessary definitions and code in MipsAsmParser.cpp. This patch makes no change in functionality, just removes unnecessary definitions and code. llvm-svn: 206272
* vect.omp.persistence.ll REQUIRES asserts due to -debug-only.NAKAMURA Takumi2014-04-151-0/+1
| | | | llvm-svn: 206271
* [Allocator] Finally, finish nuking the redundant code that led me hereChandler Carruth2014-04-153-25/+12
| | | | | | | | | | | | | | | | by removing the MallocSlabAllocator entirely and just using MallocAllocator directly. This makes all off these allocators expose and utilize the same core interface. The only ugly part of this is that it exposes the fact that the JIT allocator has no real handling of alignment, any more than the malloc allocator does. =/ It would be nice to fix both of these to support alignments, and then to leverage that in the BumpPtrAllocator to do less over allocation in order to manually align pointers. But, that's another patch for another day. This patch has no functional impact, it just removes the somewhat meaningless wrapper around MallocAllocator. llvm-svn: 206267
* D3348 - [BUG] "Rotate Loop" pass kills "llvm.vectorizer.enable" metadataAlexey Bataev2014-04-153-6/+110
| | | | llvm-svn: 206266
* [Allocator] Pass the size to the deallocation function. This, on someChandler Carruth2014-04-153-13/+17
| | | | | | | | | | | | allocation libraries, may allow more efficient allocation and deallocation. It at least makes the interface implementable by the JIT memory manager. However, this highlights problematic overloading between the void* and the T* deallocation functions. I'm looking into a better way to do this, but as it happens, it comes up rarely in the codebase. llvm-svn: 206265
* X86JITInfo: [x86] Rework r206240, X86CompilationCallback_SSE() should be ↵NAKAMURA Takumi2014-04-151-1/+7
| | | | | | called for SSE-enabled code generator, even if LLVM is not built with -msse. llvm-svn: 206261
* [Allocator] Fix r206256 which got the enabling case backwards on theseChandler Carruth2014-04-151-2/+2
| | | | | | | | | | overloads. This doesn't matter *that* much yet, but it will in a subsequent patch. I had tested the original pattern, but not my attempt to pacify MSVC. This at least appears to work. Still fixing the rest of the fallout in the final patch that uses these overloads, but it will follow shortly. llvm-svn: 206259
* Fix broken build of llvm using clang.Nick Lewycky2014-04-151-0/+2
| | | | llvm-svn: 206257
* [Allocator] MSVC apparantly has broken SFINAE context handling ofChandler Carruth2014-04-151-2/+5
| | | | | | | | | | 'sizeof(T)' for T == void and produces a hard error. I cannot fathom why this is OK. Oh well. switch to an explicit test for being the (potentially qualified) void type, which is the only specific case I was worried about. Hopefully this survives the libstdc++ build bots which have limited type traits implementations... llvm-svn: 206256
* Break PseudoSourceValue out of the Value hierarchy. It is now the root of ↵Nick Lewycky2014-04-1528-338/+280
| | | | | | its own tree containing FixedStackPseudoSourceValue (which you can use isa/dyn_cast on) and MipsCallEntry (which you can't). Anything that needs to use either a PseudoSourceValue* and Value* is strongly encouraged to use a MachinePointerInfo instead. llvm-svn: 206255
* [C++11] More 'nullptr' conversion. In some cases just using a boolean check ↵Craig Topper2014-04-1519-93/+93
| | | | | | instead of comparing to nullptr. llvm-svn: 206254
* Add a DenseMapInfo specialization for PointerUnion. In tree user to land ↵Nick Lewycky2014-04-151-0/+28
| | | | | | shortly. llvm-svn: 206253
* [C++11] More 'nullptr' conversion. In some cases just using a boolean check ↵Craig Topper2014-04-1573-456/+461
| | | | | | instead of comparing to nullptr. llvm-svn: 206252
* [Allocator] Constrain the Deallocate templated overloads to only applyChandler Carruth2014-04-151-2/+5
| | | | | | | | | | | to types which we can compute the size of. The comparison with zero isn't actually interesting here, it's mostly about putting sizeof into a sfinae context. This is particular important for Deallocate as otherwise the void* overload can quickly become ambiguous. llvm-svn: 206251
* Use unique_ptr to manage TypePromotionActions owned by TypePromotionTransaction.David Blaikie2014-04-151-28/+19
| | | | llvm-svn: 206250
* Use unique_ptr to manage ownership of GCFunctionInfos in GCStrategyDavid Blaikie2014-04-152-12/+4
| | | | llvm-svn: 206249
* Use unique_ptr for the result of Registry entries.David Blaikie2014-04-153-12/+13
| | | | llvm-svn: 206248
* Use unique_ptr to manage ownership of GCStrategy objects in GCMetadataDavid Blaikie2014-04-154-22/+16
| | | | llvm-svn: 206246
* Use unique_ptr for section/segment ownership in WinCOFFObjectWriterDavid Blaikie2014-04-151-41/+32
| | | | llvm-svn: 206245
* Use unique_ptr to own MCFunctions within MCModule.David Blaikie2014-04-154-14/+14
| | | | | | | | MCModule's ctor had to be moved out of line so the definition of MCFunction was available. (ctor requires the dtor of members (in case the ctor throws) which required access to the dtor of MCFunction) llvm-svn: 206244
* [C++11] More 'nullptr' conversion. In some cases just using a boolean check ↵Craig Topper2014-04-1559-563/+574
| | | | | | instead of comparing to nullptr. llvm-svn: 206243
* Use std::unique_ptr to manage MCBasicBlocks in MCFunction.David Blaikie2014-04-153-21/+16
| | | | llvm-svn: 206242
* [MC] Require an MCContext when constructing an MCDisassembler.Lang Hames2014-04-1517-80/+119
| | | | | | | | | | | | | | | | This patch re-introduces the MCContext member that was removed from MCDisassembler in r206063, and requires that an MCContext be passed in at MCDisassembler construction time. (Previously the MCContext member had been initialized in an ad-hoc fashion after construction). The MCCContext member can be used by MCDisassembler sub-classes to construct constant or target-specific MCExprs. This patch updates disassemblers for in-tree targets, and provides the MCRegisterInfo instance that some disassemblers were using through the MCContext (previously those backends were constructing their own MCRegisterInfo instances). llvm-svn: 206241
* X86JITInfo: [x86] Use X86CompilationCallback_SSE() along;NAKAMURA Takumi2014-04-151-3/+2
| | | | | | | | | | *not* Subtarget->hasSSE1() *but* __SSE__, the flag that LLVM libraries are compiled The callback calls internal LLVM JIT libraries. It may be built with -msse (or above). FIXME: JIT may use "host" instead of "generic" by default. llvm-svn: 206240
* [ARM64,C++11]: Range'ify the dead-register-definition pass.Jim Grosbach2014-04-151-27/+23
| | | | | | Range-based for loops. No functional change intended. llvm-svn: 206239
* Add iterator_range for MachineInstr defs.Jim Grosbach2014-04-151-0/+16
| | | | llvm-svn: 206238
* [MC] Emit an error if cfi_startproc is used before a symbol is defined.Quentin Colombet2014-04-155-0/+23
| | | | | | | | | Currently, we bind those directives with the last symbol, so if none has been defined, this would lead to a crash of the compiler. <rdar://problem/15939159> llvm-svn: 206236
* [Register Coalescer] Add a test case for 206060.Quentin Colombet2014-04-151-0/+83
| | | | | | <rdar://problem/16582185> llvm-svn: 206235
* [Allocator] Add Deallocate support to the AllocatorBase CRTP class,Chandler Carruth2014-04-151-0/+33
| | | | | | | | | | | | along with templated overloads much like we have for Allocate. These will facilitate switching the Deallocate interface of all the Allocator classes to accept the size by pre-filling it from the type size where we can do so. I plan to convert several uses to the template variants in subsequent patches prior to adding the Size parameter. No functionality changed, WIP. llvm-svn: 206230
* [ARM64][MC] Set the default CPU string to generic.Quentin Colombet2014-04-151-3/+1
| | | | llvm-svn: 206228
* [Allocator] Hack around the fact that GCC can't compile theChandler Carruth2014-04-151-0/+2
| | | | | | | static_assert added in r206225. I'm looking into a proper fix, but wanted the bots back. llvm-svn: 206226
OpenPOWER on IntegriCloud