summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* Verifier: Add operand checks for remaining debug infoDuncan P. N. Exon Smith2015-03-3010-77/+98
| | | | llvm-svn: 233565
* DebugInfo: Simplify logic in DISubprogram::Verify(), NFCDuncan P. N. Exon Smith2015-03-301-13/+8
| | | | | | | Simplify the logic in `DISubprogram::Verify()` by using the new debug info hierarchy directly instead of the `DebugLoc` wrapper. llvm-svn: 233563
* Verifier: Loosen r233559 check for 'function:' field in MDSubprogramDuncan P. N. Exon Smith2015-03-301-3/+2
| | | | | | | | | | Stop worrying about what the `function:` field is in `MDSubprogram`, since it could be a bitcast [1]. Just check its type and leave it at that. [1]: http://lab.llvm.org:8080/green/job/clang-stage2-configure-Rlto_build/3540/ llvm-svn: 233562
* Verifier: Add operand checks for MDLexicalBlockDuncan P. N. Exon Smith2015-03-3011-28/+82
| | | | | | | | | | Add operand checks for `MDLexicalBlock` and `MDLexicalBlockFile`. Like `MDLocalVariable` and `MDLocation`, these nodes always require a scope. There was no test bitrot to fix here (just updated the serialization tests in test/Assembler/mdlexicalblock.ll). llvm-svn: 233561
* DebugInfo: Rename some testcasesDuncan P. N. Exon Smith2015-03-303-0/+0
| | | | | | | | Momentarily (but never in tree), the `scope:` field was called `parent:`. Apparently a few testcases were left behind with "parent" in the name, so rename them. llvm-svn: 233560
* Verifier: Check operands of MDSubprogram nodesDuncan P. N. Exon Smith2015-03-306-91/+186
| | | | | | | | | | | Check operands of `MDSubprogram`s in the verifier, and update the accessors and factory functions to use more specific types. There were a lot of broken testcases, which I fixed in r233466. If you have out-of-tree tests for debug info, you probably need similar changes to the ones I made there. llvm-svn: 233559
* Trying to fix the Hexagon and debian-fast bots arm32_neon_vcnt_upgrade.ll test.Yaron Keren2015-03-301-1/+1
| | | | llvm-svn: 233558
* Remove more superfluous .str() and replace std::string concatenation with Twine.Yaron Keren2015-03-3022-53/+52
| | | | | | Following r233392, http://llvm.org/viewvc/llvm-project?rev=233392&view=rev. llvm-svn: 233555
* more space; NFCSanjay Patel2015-03-301-1/+1
| | | | llvm-svn: 233554
* [X86] Ensure integer domain on scalar i64 load/store stack folding tests. NFCSimon Pilgrim2015-03-302-8/+16
| | | | llvm-svn: 233553
* Fix Sphinx warning " Title underline too short.".Rafael Espindola2015-03-301-1/+1
| | | | llvm-svn: 233551
* Save a std::string.Rafael Espindola2015-03-302-11/+14
| | | | | | The group names are always symbol names, so we can use a StringRef. llvm-svn: 233545
* [SystemZ] Fix LLVM crash on unoptimized codeUlrich Weigand2015-03-302-0/+32
| | | | | | | | | | | | | | Compiling the following function with -O0 would crash, since LLVM would hit an assertion in getTestUnderMaskCond: int test(unsigned long x) { return x >= 0 && x <= 15; } Fixed by detecting the case in the caller of getTestUnderMaskCond. llvm-svn: 233541
* [SystemZ] Remove TargetMachine CPU auto-detectionUlrich Weigand2015-03-301-5/+0
| | | | | | As was done for X86 in r206094. llvm-svn: 233540
* Special case the creation of relocation sections.Rafael Espindola2015-03-303-6/+20
| | | | | | | | | | | These sections are never looked up and we know when have to create them. Use that to save adding them to the regular map and avoid a symbol->string->symbol conversion for the group symbol. This also makes the implementation independent of the details of how unique sections are implemented. llvm-svn: 233539
* [mips] Support 9-bit offsets for the 'R' inline assembly memory constraint.Daniel Sanders2015-03-303-10/+74
| | | | | | | | | | | | | | | | | | | Summary: The 'R' constraint is actually supposed to be much more complicated than this and is defined in terms of whether it will cause macro expansion in the assembler. 'R' is getting less useful due to architecture changes and ought to be replaced by other constraints. We therefore implement 9-bit offsets which will work for all subtargets and all instructions. Reviewers: vkalintiris Reviewed By: vkalintiris Subscribers: llvm-commits Differential Revision: http://reviews.llvm.org/D8440 llvm-svn: 233537
* Revert test commit at revision 233535.Russell Gallop2015-03-301-2/+0
| | | | llvm-svn: 233536
* Test commitRussell Gallop2015-03-301-0/+2
| | | | llvm-svn: 233535
* Revert "[SCEV] Look at backedge dominating conditions."Daniel Jasper2015-03-302-95/+0
| | | | | | | This leads to terribly slow compile times under MSAN. More discussion on the commit thread of r233447. llvm-svn: 233529
* AVX-512: blank lines, duplicated tests, no functional changesElena Demikhovsky2015-03-302-65/+29
| | | | | | see comments http://reviews.llvm.org/D6835 llvm-svn: 233528
* AVX-512: added intrinsics for VPAND, VPOR and VPXORElena Demikhovsky2015-03-303-9/+124
| | | | | | by Asaf Badouh (asaf.badouh@intel.com) llvm-svn: 233525
* [X86] In getHostCPUFeatures, disable xop, f16c, fma, and fma4 if OS does not ↵Craig Topper2015-03-301-4/+4
| | | | | | support saving ymm state. llvm-svn: 233518
* [X86] Remove FeatureAES for 'corei7' CPU. 'corei7' should match 'nehalem' ↵Craig Topper2015-03-301-11/+9
| | | | | | which doesn't have AES. Having AES and not PCLMUL makes 'corei7' halfway between Nehalem and Westmere. llvm-svn: 233517
* [X86] Use the more specific CPU names like 'nehalem', 'westmere', 'haswell', ↵Craig Topper2015-03-301-12/+9
| | | | | | etc. Split Nehalem and Westmere CPUs. llvm-svn: 233516
* [X86] Move family 6 model 21 to 'pentium-m'. Near as I can tell this is a ↵Craig Topper2015-03-301-0/+2
| | | | | | Dothan based SOC. llvm-svn: 233515
* [X86] Family 6 model 29 is a Penryn based processor not a Nehalem based ↵Craig Topper2015-03-301-2/+2
| | | | | | processor. llvm-svn: 233514
* [MCJIT] In debug memory dump output, don't truncate 64 bit addressesAlexei Starovoitov2015-03-301-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | Summary: In dumpMemorySections a cast was too short, and in resolveRelocations a format string was too short. Test Plan: Enable debug build and run a program which invokes MCJIT::finalizeObject(). Saw valid input as below (highlighted addresses were previously truncated): ``` Parse relocations: Resolving relocations Section #0 **0x7f4c1337b000** ----- Contents of section socket1 before relocations ----- **0x00007f4c1337b000**: 18 01 00 00 01 01 01 0a 00 00 00 00 04 03 02 01 0x00007f4c1337b010: 7b 1a f8 ff 00 00 00 00 18 11 00 00 05 00 00 00 ``` Reviewers: lhames Reviewed By: lhames Subscribers: llvm-commits, ast Differential Revision: http://reviews.llvm.org/D8681 llvm-svn: 233512
* [Orc] Add missing #include. Hopefully this will appease the modules buildbots.Lang Hames2015-03-301-0/+1
| | | | llvm-svn: 233510
* [MCJIT][Orc] Refactor RTDyldMemoryManager, weave RuntimeDyld::SymbolInfo throughLang Hames2015-03-3038-560/+750
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MCJIT. This patch decouples the two responsibilities of the RTDyldMemoryManager class, memory management and symbol resolution, into two new classes: RuntimeDyld::MemoryManager and RuntimeDyld::SymbolResolver. The symbol resolution interface is modified slightly, from: uint64_t getSymbolAddress(const std::string &Name); to: RuntimeDyld::SymbolInfo findSymbol(const std::string &Name); The latter passes symbol flags along with symbol addresses, allowing RuntimeDyld and others to reason about non-strong/non-exported symbols. The memory management interface removes the following method: void notifyObjectLoaded(ExecutionEngine *EE, const object::ObjectFile &) {} as it is not related to memory management. (Note: Backwards compatibility *is* maintained for this method in MCJIT and OrcMCJITReplacement, see below). The RTDyldMemoryManager class remains in-tree for backwards compatibility. It inherits directly from RuntimeDyld::SymbolResolver, and indirectly from RuntimeDyld::MemoryManager via the new MCJITMemoryManager class, which just subclasses RuntimeDyld::MemoryManager and reintroduces the notifyObjectLoaded method for backwards compatibility). The EngineBuilder class retains the existing method: EngineBuilder& setMCJITMemoryManager(std::unique_ptr<RTDyldMemoryManager> mcjmm); and includes two new methods: EngineBuilder& setMemoryManager(std::unique_ptr<MCJITMemoryManager> MM); EngineBuilder& setSymbolResolver(std::unique_ptr<RuntimeDyld::SymbolResolver> SR); Clients should use EITHER: A single call to setMCJITMemoryManager with an RTDyldMemoryManager. OR (exclusive) One call each to each of setMemoryManager and setSymbolResolver. This patch should be fully compatible with existing uses of RTDyldMemoryManager. If it is not it should be considered a bug, and the patch either fixed or reverted. If clients find the new API to be an improvement the goal will be to deprecate and eventually remove the RTDyldMemoryManager class in favor of the new classes. llvm-svn: 233509
* [Orc] Add missing inline keyword to the function introduced in r233504.Lang Hames2015-03-291-1/+1
| | | | llvm-svn: 233506
* [Orc] Use raw TargetAddresses for callback trampoline addresses, rather than IR.Lang Hames2015-03-292-10/+15
| | | | | | | | Add convenience function for building a typed IR Constant from trampoline addresses. llvm-svn: 233504
* Silence sign compare warning. NFC.Benjamin Kramer2015-03-291-1/+2
| | | | llvm-svn: 233502
* [inline asm] Don't reject duplicated matching constraintsBenjamin Kramer2015-03-292-1/+14
| | | | | | | They're harmless and it's easy to generate them from clang, leading to a crash in LLVM. Found by afl-fuzz. llvm-svn: 233500
* Use SDValue bool check to tidyup some possible vector folding ops. NFC.Simon Pilgrim2015-03-291-40/+35
| | | | llvm-svn: 233498
* Use SDValue bool check to tidyup some possible ReassociateOps. NFC.Simon Pilgrim2015-03-291-10/+5
| | | | llvm-svn: 233495
* AVX-512: Fixed the "commutative" property flag in VPANDN instructionElena Demikhovsky2015-03-291-1/+1
| | | | | | By Asaf Badouh (asaf.badouh@intel.com) llvm-svn: 233489
* Fix a variable name in MSVC specific part of rr233487.Craig Topper2015-03-291-2/+2
| | | | llvm-svn: 233488
* [X86] Implement getHostCPUFeatures for X86.Craig Topper2015-03-291-8/+93
| | | | | | Plan to use this as part of CPU 'native' support so we can stop picking a different CPU name if CPU doesn't support AVX or AVX2. llvm-svn: 233487
* Delete MCInstPrinter::AvailableFeatures.Akira Hatanaka2015-03-282-10/+2
| | | | | | | | | All the ports have been fixed to read the feature bits from the subtarget passed to the print methods. Also, delete the call to setAvailableFeatures in the constructor of NVPTX's instprinter as the instprinter wasn't using the feature bits anywhere. llvm-svn: 233486
* [X86] Read the feature bits from the subtarget that is passed to printInstAkira Hatanaka2015-03-282-5/+2
| | | | | | instead of from MCInstPrinter::AvailableFeatures. llvm-svn: 233485
* [Objdump] Pass the correct subtarget to printInst.Akira Hatanaka2015-03-283-2/+5
| | | | | | This fixes a bug I introduced in r233411. llvm-svn: 233484
* [PowerPC] Add asm parser support for bitmask forms of rotate-and-mask ↵Hal Finkel2015-03-285-31/+122
| | | | | | | | | | | | | | | instructions The asm syntax for the 32-bit rotate-and-mask instructions can take a 32-bit bitmask instead of an (mb, me) pair. This syntax is not specified in the Power ISA manual, but is accepted by GNU as, and is documented in IBM's Assembler Language Reference. The GNU Multiple Precision Arithmetic Library (gmp) contains assembly that uses this syntax. To implement this, I moved the isRunOfOnes utility function from PPCISelDAGToDAG.cpp to PPCMCTargetDesc.h. llvm-svn: 233483
* [DAGCombiner] Fixed incorrect test for buildvector of constant integers.Simon Pilgrim2015-03-281-14/+8
| | | | | | DAGCombiner::ReassociateOps was correctly testing for an constant integer scalar but failed to correctly test for constant integer vectors (it was testing for any constant vector). llvm-svn: 233482
* [ConstantFold] Don't fold ppc_fp128 <-> int bitcastsHal Finkel2015-03-282-2/+49
| | | | | | | | | | | | | PPC_FP128 is really the sum of two consecutive doubles, where the first double is always stored first in memory, regardless of the target endianness. The memory layout of i128, however, depends on the target endianness, and so we can't fold this without target endianness information. As a result, we must not do this folding in lib/IR/ConstantFold.cpp (it could be done instead in Analysis/ConstantFolding.cpp, but that's not done now). Fixes PR23026. llvm-svn: 233481
* Convert feature strings to lowercase even if they have a '+'/'-' in front of ↵Craig Topper2015-03-281-1/+1
| | | | | | them. llvm-svn: 233475
* Partially revert the changes I made in r233473 to keep the code concise.Akira Hatanaka2015-03-281-137/+47
| | | | llvm-svn: 233474
* clang-format X86ATTInstPrinter.{h,cpp} before I make changes to these files.Akira Hatanaka2015-03-282-76/+156
| | | | llvm-svn: 233473
* [SparcInstPrinter] Use the subtarget that is passed to the print functionAkira Hatanaka2015-03-283-34/+47
| | | | | | | | | | | instead of the one passed to the constructor. Unfortunately, I don't have a test case for this change. In order to test my change, I will have to run the code after line 90 in printSparcAliasInstr. I couldn't make that happen because printAliasInstr would always handle the printing of fcmp instructions that the code after line 90 is supposed to handle. llvm-svn: 233471
* Update comment to match code behavior.Craig Topper2015-03-281-1/+1
| | | | llvm-svn: 233470
* Verifier: Allow subroutine types to have no type arrayDuncan P. N. Exon Smith2015-03-282-6/+28
| | | | | | | | | Loosen one check from r233446: as long as `DIBuilder` requires a non-null type for every subprogram, we should allow a null type array. Also add tests for the rest of `MDSubroutineType`, which were somehow missing. llvm-svn: 233468
OpenPOWER on IntegriCloud