summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* This reverts commit r224043 and r224042.Rafael Espindola2014-12-1114-184/+241
| | | | | | check-llvm was failing. llvm-svn: 224045
* Silence static analyzer warnings in LLVMSupport.Michael Ilseman2014-12-112-0/+4
| | | | | | | The static analyzer catches a few potential bugs in LLVMSupport. Add in asserts to silence the warnings. llvm-svn: 224044
* Enable machineverifier in debug mode for X86, ARM, AArch64, MipsMatthias Braun2014-12-114-20/+20
| | | | llvm-svn: 224043
* [CodeGen] Add print and verify pass after each MachineFunctionPass by defaultMatthias Braun2014-12-1114-261/+204
| | | | | | | | | | | | | | | | Previously print+verify passes were added in a very unsystematic way, which is annoying when debugging as you miss intermediate steps and allows bugs to stay unnotice when no verification is performed. To make this change practical I added the possibility to explicitely disable verification. I used this option on all places where no verification was performed previously (because alot of places actually don't pass the MachineVerifier). In the long term these problems should be fixed properly and verification enabled after each pass. I'll enable some more verification in subsequent commits. llvm-svn: 224042
* [CodeGen] Let MachineVerifierPass own its banner stringMatthias Braun2014-12-112-6/+6
| | | | llvm-svn: 224041
* [Hexagon] Renaming classes in preparation for replacement.Colin LeMahieu2014-12-111-13/+13
| | | | llvm-svn: 224036
* ARM: convert isTargetIOS checks to isTargetDarwin.Tim Northover2014-12-114-12/+8
| | | | | | | | | | | The distinction is mostly useful in the front-end. By the time we get here, there are very few situations where we actually want different behaviour for Darwin and IOS (in fact Darwin mostly just exists in a few tests). So this should reduce any surprising weirdness for anyone using it. No functional change on anything anyone actually cares about. llvm-svn: 224035
* [PowerPC] Implement BuildSDIVPow2, lower i64 pow2 sdiv using sradiHal Finkel2014-12-114-30/+116
| | | | | | | | | | | | | | | | PPCISelDAGToDAG contained existing code to lower i32 sdiv by a power-of-2 using srawi/addze, but did not implement the i64 case. DAGCombine now contains a callback specifically designed for this purpose (BuildSDIVPow2), and part of the logic has been moved to an implementation of that callback. Doing this lowering using BuildSDIVPow2 likely does not matter, compared to handling everything in PPCISelDAGToDAG, for the positive divisor case, but the negative divisor case, which generates an additional negation, can potentially benefit from additional folding from DAGCombine. Now, both the i32 and the i64 cases have been implemented. Fixes PR20732. llvm-svn: 224033
* Remove dead code. NFC.Rafael Espindola2014-12-114-109/+7
| | | | llvm-svn: 224029
* [AVX512] Add support for 512b variable bit shift intrinsics.Cameron McInally2014-12-115-39/+215
| | | | llvm-svn: 224028
* [Hexagon] Ading i64 <- i32, i32 sextw pattern.Colin LeMahieu2014-12-111-0/+2
| | | | llvm-svn: 224027
* [Hexagon] Adding encoding information for sign extend word instruction.Colin LeMahieu2014-12-115-27/+50
| | | | llvm-svn: 224026
* Only seek once before writing the member offsets.Rafael Espindola2014-12-111-18/+20
| | | | | | | This cuts down the number on system calls done by a static llvm-ar producing lib/libclangSema.a from 9164 to 442. llvm-svn: 224025
* llvm-ar: close input files early.Rafael Espindola2014-12-111-16/+13
| | | | | | We already have them mapped into memory, so we can just close the file. llvm-svn: 224020
* AVX-512: Added all forms of COMPRESS instructionElena Demikhovsky2014-12-117-22/+365
| | | | | | + intrinsics + tests llvm-svn: 224019
* [mips][microMIPS] Implement CodeGen support for LI16 instruction.Jozef Kolek2014-12-114-5/+31
| | | | | | Differential Revision: http://reviews.llvm.org/D5840 llvm-svn: 224017
* InstSimplify: Remove usesless %a parameter from testsDavid Majnemer2014-12-111-4/+4
| | | | | | No functional change intended. llvm-svn: 224016
* The inliner needs to fix up debug information for llvm.dbg.declare, not only ↵Michael Kuperstein2014-12-112-0/+102
| | | | | | | | | | for llvm.dbg.value. Patch by Amjad Aboud Differential Revision: http://reviews.llvm.org/D6525 llvm-svn: 224015
* Add newline missing in r224010.Michael Kuperstein2014-12-111-1/+1
| | | | llvm-svn: 224011
* [X86] When converting movs to pushes, don't assume MOVmi operand is an ↵Michael Kuperstein2014-12-112-11/+26
| | | | | | | | actual immediate This should fix PR21878. llvm-svn: 224010
* Bugfix in InlineSpiller::traceSiblingValue().Patrik Hagglund2014-12-111-3/+6
| | | | | | | | | | Properly determine whether or not a phi was added by splitting. Check against the current VNInfo of OrigLI instead of against the OrigVNI argument. Patch provided by Jonas Paulsson. Reviewed by Quentin Colombet. llvm-svn: 224009
* AVX-512: Fixed a bug in lowering setcc for MVT::i1 typeElena Demikhovsky2014-12-112-1/+49
| | | | llvm-svn: 224008
* test commit (spelling correction)Kumar Sukhani2014-12-111-1/+1
| | | | llvm-svn: 224007
* Refactor creation of overflow result tuples in InstCombineCalls.Erik Eckstein2014-12-112-57/+30
| | | | | | Extract the creation of overflow result tuples in a separate function. NFC. llvm-svn: 224006
* Use range-based for loops. NFCCraig Topper2014-12-112-14/+9
| | | | llvm-svn: 224005
* Just use the Module unique_ptr object directly in many places instead of ↵Craig Topper2014-12-111-8/+6
| | | | | | separate pointer that's kept in sync with it. llvm-svn: 224004
* Use unique_ptr to remove an explicit delete. Change return type to pass the ↵Craig Topper2014-12-111-5/+5
| | | | | | unique_ptr to caller. llvm-svn: 224003
* IR: Canonicalize metadata formatting, NFCDuncan P. N. Exon Smith2014-12-116-50/+26
| | | | | | | | | | | | Canonicalize formatting of metadata to make it easier to upgrade via scripts -- in particular, one line per metadata definition makes it more `sed`-able. This is preparation for changing the assembly syntax for metadata [1]. [1]: http://lists.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20141208/248449.html llvm-svn: 224002
* Reverting commit 223981, because the test that I added ↵Ekaterina Romanova2014-12-112-74/+0
| | | | | | | | (incorrect-variable-debugloc1.ll) failed for llvm-ppc64. The test is failing for llvm-ppc64 because for this platform the location list is not being generated at all (most likely because of the bug in PPC code optimization or generation). I will file a bug agains PPC compiler, but meanwhile, until PPC bug is fixed, I will have to revert my change. llvm-svn: 224000
* Make MultiClass::DefPrototypes own their Records to fix memory leaks.Craig Topper2014-12-112-14/+9
| | | | llvm-svn: 223998
* Replace std::map<K, V*> with std::map<K, std::unique_ptr<V>> to handle ↵Craig Topper2014-12-112-6/+9
| | | | | | | | ownership and deletion of the values. Ideally we would store the MultiClasses by value directly in the maps, but I had some trouble with that before and this at least fixes the leak. llvm-svn: 223997
* [X86] Add back AVX2 VR256 PMOVX patterns.Ahmed Bougacha2014-12-111-0/+16
| | | | | | | | | We can't reach those from zext, but other parts of the backend (the shuffle lowering) generate 256-bit VZEXT nodes. Fixes PR21876. llvm-svn: 223996
* Fix LLVMContext to match what MDKind names that the LL parser permits. Fixes ↵Nick Lewycky2014-12-112-21/+3
| | | | | | PR21799! llvm-svn: 223995
* GCStrategy should not own GCFunctionInfoPhilip Reames2014-12-119-64/+64
| | | | | | | | | | | | This change moves the ownership and access of GCFunctionInfo (the object which describes the safepoints associated with a safepoint under GCRoot) to GCModuleInfo. Previously, this was owned by GCStrategy which was in turned owned by GCModuleInfo. This made GCStrategy module specific which is 'surprising' given it's name and other purposes. There's a few more changes needed, but we're getting towards the point we can reuse GCStrategy for gc.statepoint as well. p.s. The style of this code ends up being a mess. I was trying to move code around without otherwise changing much. Once I get the ownership structure rearranged, I will go through and fixup spacing, naming, comments etc. Differential Revision: http://reviews.llvm.org/D6587 llvm-svn: 223994
* IR: Add 'invalid-' to test names for invalid assemblyDuncan P. N. Exon Smith2014-12-114-0/+0
| | | | | | Take the opportunity to sort these by `metadata`. llvm-svn: 223993
* LiveInterval: Use range based for loops for subregister ranges.Matthias Braun2014-12-119-126/+110
| | | | llvm-svn: 223991
* Try again at sorting entries in CODE_OWNERSJustin Bogner2014-12-111-8/+8
| | | | | | | I apparently fail at the alphabet, E is not after G, and G isn't even close to C. Sorry for the noise. llvm-svn: 223990
* Fix some incorrectly sorted entries in CODE_OWNERSJustin Bogner2014-12-111-15/+15
| | | | llvm-svn: 223989
* Add code owners for profiling and coverageJustin Bogner2014-12-111-0/+12
| | | | llvm-svn: 223988
* ARM: correctly expand LDR-lit based globals.Tim Northover2014-12-105-4/+6
| | | | | | | | Quite a major error here: the expansions for the Pseudos with and without folded load were mixed up. Fortunately it only affects ARM-mode, when not using movw/movt, on Darwin. I'm guessing no-one actually uses that combination. llvm-svn: 223986
* A fix for PR21176.Ekaterina Romanova2014-12-102-0/+74
| | | | | | | | | | | | | | DW_OP_const <const> doesn't describe a constant value, but a value at a constant address. The proper way to describe a constant value is DW_OP_constu <const>, DW_OP_stack_value. Added DW_OP_stack_value to the stack. -This line, and those below, will be ignored-- M lib/CodeGen/AsmPrinter/DwarfDebug.cpp A test/DebugInfo/incorrect-variable-debugloc1.ll llvm-svn: 223981
* LiveInterval: Use more range based for loops for value numbers and segments.Matthias Braun2014-12-108-90/+67
| | | | llvm-svn: 223978
* Fix PR21694. r219517 added a use of SCEV divide in HowFarToZero computation. ↵Mark Heffernan2014-12-101-10/+8
| | | | | | This divide can produce incorrect results as we are using an unsigned divide for what should be a modular divide. This change reverts back to a more conservative computation using trailing zeros. llvm-svn: 223974
* [Hexagon] Adding combine ri/ir instructions.Colin LeMahieu2014-12-102-0/+30
| | | | llvm-svn: 223971
* ConstantFold: Clean up X * undef codeDavid Majnemer2014-12-101-6/+8
| | | | | | No functional change intended. llvm-svn: 223970
* ConstantFold, InstSimplify: undef >>a x can be either -1 or 0, choose 0David Majnemer2014-12-103-6/+7
| | | | | | Zero is usually a nicer constant to have than -1. llvm-svn: 223969
* ConstantFold: an undef shift amount results in undefDavid Majnemer2014-12-102-13/+35
| | | | | | | X shifted by undef results in undef because the undef value can represent values greater than the width of the operands. llvm-svn: 223968
* [Hexagon] Adding encodings for JR class instructions. Updating complier usages.Colin LeMahieu2014-12-1010-185/+188
| | | | llvm-svn: 223967
* Move three methods only used by MCJIT to MCJIT.Rafael Espindola2014-12-107-98/+64
| | | | | | | | These methods are only used by MCJIT and are very specific to it. In fact, they are also fairly specific to the fact that we have a dynamic linker of relocatable objects. llvm-svn: 223964
* [AArch64] MachO large code-model: Materialize FP constants in code.Juergen Ributzka2014-12-104-1/+65
| | | | | | | | | | | | | | | In the large code model we have to first get the address of the GOT entry, load the address of the constant, and then load the constant itself. To avoid these loads and the GOT entry alltogether this commit changes the way how FP constants are materialized in the large code model. The constats are now materialized in a GPR and then bitconverted/moved into the FPR. Reviewed by Tim Northover Fixes rdar://problem/16572564. llvm-svn: 223941
OpenPOWER on IntegriCloud