summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* [arm fast-isel] Appease the machine verifier by using the proper registerChad Rosier2012-11-271-4/+10
| | | | | | | | classes. The associated test case still doesn't pass, but it does have far fewer issues. rdar://12719844 llvm-svn: 168657
* Revert r168635 "Step towards implementation of pass manager with ↵Owen Anderson2012-11-271-24/+55
| | | | | | | | doInitialization and doFinalization per module detangled from runOn?? calls, still has temporary code not to break ASAN to be removed when that pass conforms to the proposed model". It appears to have broken at least one buildbot. llvm-svn: 168654
* Fast-math optimization: fold multiply by zeroMichael Ilseman2012-11-271-0/+39
| | | | | | Added in first optimization using fast-math flags to serve as an example for following optimizations. SimplifyInstruction will now try to optimize an fmul observing its FastMathFlags to see if it can fold multiply by zero when 'nnan' and 'nsz' flags are set. llvm-svn: 168648
* Fast-math flags for the bitcodeMichael Ilseman2012-11-272-0/+27
| | | | | | Added in bitcode enum for the serializing of fast-math flags. Added in the reading/writing of fast-math flags from the OptimizationFlags record for BinaryOps. llvm-svn: 168646
* Fast-math flags for LLVM IR parsing and printingMichael Ilseman2012-11-275-4/+54
| | | | | | Added in the ability to read LLVM IR text that contains fast-math flags as a sequence of capital letters separated by spaces in any order. Added in the printing of the fast-math flags in a canonical order, and don't print the other flags when 'fast' is specified, as 'fast' implies all the others. llvm-svn: 168645
* Make comment names match function names.Eric Christopher2012-11-271-3/+3
| | | | llvm-svn: 168644
* Add in sections for the fission case (no change so incorrect) andEric Christopher2012-11-271-1/+32
| | | | | | add a TODO for starting. llvm-svn: 168643
* Fast-math interfaces for InstructionsMichael Ilseman2012-11-271-0/+84
| | | | | | Add in getter/setter methods for Instructions, allowing them to be the interface to FPMathOperator similarly to now NUS/NSW is handled. llvm-svn: 168642
* Reorder section output ordering.Eric Christopher2012-11-271-25/+27
| | | | llvm-svn: 168638
* Whitespace cleanup.Eric Christopher2012-11-271-27/+27
| | | | llvm-svn: 168637
* Step towards implementation of pass manager with doInitialization and ↵Owen Anderson2012-11-261-55/+24
| | | | | | | | doFinalization per module detangled from runOn?? calls, still has temporary code not to break ASAN to be removed when that pass conforms to the proposed model Patch by Pedro Artigas, with feedback from by Chandler Carruth. llvm-svn: 168635
* Add an assertion to ensure freezeReservedRegs() is only ever called once.Chad Rosier2012-11-261-0/+2
| | | | llvm-svn: 168633
* Now that the X86 Maximal Stack Alignment Check pass has been removed (i.e.,Chad Rosier2012-11-262-3/+0
| | | | | | | | | r168627), we no longer need to call the freezeReservedRegs() function a second time. Previously, this pass was conservatively adding the FP to the set of reserved registers, requiring the second update to the reserved registers. rdar://12719844 llvm-svn: 168631
* Now that the X86 Maximal Stack Alignment Check pass has been removed (i.e.,Chad Rosier2012-11-261-1/+0
| | | | | | | | | r168627), we no longer need to call the freezeReservedRegs() function a second time. Previously, this pass was conservatively adding the FP to the set of reserved registers, requiring the second update to the reserved registers. rdar://12719844 llvm-svn: 168630
* Get rid of the getPointeeAlignment helper function fromEli Friedman2012-11-261-22/+4
| | | | | | | | InstCombineLoadStoreAlloca.cpp, which had many issues. (At least two bugs were noted on llvm-commits, and it was overly conservative.) Instead, use getOrEnforceKnownAlignment. llvm-svn: 168629
* Remove the X86 Maximal Stack Alignment Check pass as it is no longer necessary.Chad Rosier2012-11-263-50/+0
| | | | | | | | | | | | | | | This pass was conservative in that it always reserved the FP to enable dynamic stack realignment, which allowed the RA to use aligned spills for vector registers. This happens even when spills were not necessary. The RA has since been improved to use unaligned spills when necessary. The new behavior is to realign the stack if the frame pointer was already reserved for some other reason, but don't reserve the frame pointer just because a function contains vector virtual registers. Part of rdar://12719844 llvm-svn: 168627
* Don't use iterator after being erased.Jakub Staszak2012-11-261-1/+1
| | | | llvm-svn: 168622
* Fix comments in HexagonOperands.td.Jyotsna Verma2012-11-261-29/+27
| | | | llvm-svn: 168617
* rdar://12329730 (defect 2)Shuxin Yang2012-11-261-0/+21
| | | | | | | | | | | | | | Enhancement to InstCombine. Try to catch this opportunity: --------------------------------------------------------------- ((X^C1) >> C2) ^ C3 => (X>>C2) ^ ((C1>>C2)^C3) where the subexpression "X ^ C1" has more than one uses, and "(X^C1) >> C2" has single use. ---------------------------------------------------------------- Reviewed by Nadav (with minor change per his request). llvm-svn: 168615
* Remove unneeded #includes.Jakub Staszak2012-11-261-4/+0
| | | | llvm-svn: 168608
* Fix a comment bug in toascii simplifierMeador Inge2012-11-261-1/+1
| | | | | | | When I migrated the toascii simplifier in r168580 Benjamin Kramer noticed a bug in one of the comments that I migrated. llvm-svn: 168605
* instcombine: Migrate printf optimizationsMeador Inge2012-11-262-89/+104
| | | | | | | This patch migrates the printf optimizations from the simplify-libcalls pass into the instcombine library call simplifier. llvm-svn: 168604
* Move the code that uses SCEVs prior to creating the new loops. Nadav Rotem2012-11-261-32/+35
| | | | llvm-svn: 168601
* Normalize splat 256bit vectors with 8 elements.Jakub Staszak2012-11-261-1/+1
| | | | llvm-svn: 168600
* Decouple MCInstBuilder from the streamer per Eli's request.Benjamin Kramer2012-11-263-156/+111
| | | | llvm-svn: 168597
* Remove stray trailing backslashMatt Beaumont-Gay2012-11-261-1/+1
| | | | llvm-svn: 168592
* tsan: fix lint warningsDmitry Vyukov2012-11-261-2/+2
| | | | llvm-svn: 168590
* Add MCInstBuilder, a utility class to simplify MCInst creation similar to ↵Benjamin Kramer2012-11-263-486/+373
| | | | | | | | MachineInstrBuilder. Simplify some repetitive code with it. No functionality change. llvm-svn: 168587
* [tsan] add fail order to compare_exchangeDmitry Vyukov2012-11-261-3/+27
| | | | llvm-svn: 168586
* Fix a PassManager pointer use-after-free bug.Zhou Sheng2012-11-261-0/+12
| | | | | | The bug can be triggered when we require LoopInfo analysis ahead of DominatorTree construction in a Module Pass. The cause is that the LoopInfo analysis itself also invokes DominatorTree construction, therefore, when PassManager schedules LoopInfo, it will add DominatorTree first. Then after that, when the PassManger turns to schedule DominatorTree invoked by the above ModulePass, it finds there is already a DominatorTree, so it delete the redundant one. However, somehow it still try to access that pass pointer after free as code pasted below, which results in segment fault. llvm-svn: 168581
* instcombine: Migrate toascii optimizationsMeador Inge2012-11-262-26/+16
| | | | | | | This patch migrates the toascii optimizations from the simplify-libcalls pass into the instcombine library call simplifier. llvm-svn: 168580
* instcombine: Migrate isascii optimizationsMeador Inge2012-11-262-20/+17
| | | | | | | This patch migrates the isascii optimizations from the simplify-libcalls pass into the instcombine library call simplifier. llvm-svn: 168579
* instcombine: Migrate isdigit optimizationsMeador Inge2012-11-262-21/+19
| | | | | | | This patch migrates the isdigit optimizations from the simplify-libcalls pass into the instcombine library call simplifier. llvm-svn: 168578
* instcombine: Migrate *abs optimizationsMeador Inge2012-11-262-25/+22
| | | | | | | This patch migrates the *abs optimizations from the simplify-libcalls pass into the instcombine library call simplifier. llvm-svn: 168574
* instcombine: Migrate ffs* optimizationsMeador Inge2012-11-252-41/+47
| | | | | | | This patch migrates the ffs* optimizations from the simplify-libcalls pass into the instcombine library call simplifier. llvm-svn: 168571
* Move the max vector width to a constant parameter. No functionality change.Nadav Rotem2012-11-251-5/+7
| | | | llvm-svn: 168570
* Fix the document style.Nadav Rotem2012-11-251-3/+3
| | | | llvm-svn: 168569
* Refactor the ptr runtime check generation code. No functionality change.Nadav Rotem2012-11-251-50/+66
| | | | llvm-svn: 168568
* Code Custodian:Joe Abbey2012-11-258-68/+67
| | | | | | | | - Widespread trailing space removal - A dash of OCD spacing to block align enums - joined a line that probably needed 80 cols a while back llvm-svn: 168566
* Add support for .cfi_register now that it is easy to extent the representationRafael Espindola2012-11-254-0/+58
| | | | | | | to support it. Original patch with the parsing and plumbing by the PaX team and Roman Divacky. I added the bits in MCDwarf.cpp and the test. llvm-svn: 168565
* Move semantics are great, don't destroy the optimization opportunity with ↵Benjamin Kramer2012-11-251-8/+0
| | | | | | | | trivial copy ctors. No functionality change. llvm-svn: 168561
* Rename method. No functionality change.Nadav Rotem2012-11-251-3/+3
| | | | llvm-svn: 168560
* The induction-pointer work is inspired by a research paper. This commit adds ↵Nadav Rotem2012-11-251-0/+4
| | | | | | a reference. llvm-svn: 168559
* Add support for pointer induction variables even when there is no integer ↵Nadav Rotem2012-11-251-105/+182
| | | | | | induction variable. llvm-svn: 168558
* Refactor to make helper method static.Craig Topper2012-11-252-29/+14
| | | | llvm-svn: 168557
* Remove duplicate check of LimitFloatPrecision. It was already checked ↵Craig Topper2012-11-251-1/+1
| | | | | | earlier before IsExp10 could be set to true. llvm-svn: 168553
* Factor common code out of individual if blocks into common tail.Craig Topper2012-11-251-24/+12
| | | | llvm-svn: 168551
* Remove redundant calls to getCurDebugLoc in visitIntrinsicCall. It's already ↵Craig Topper2012-11-241-7/+4
| | | | | | called at the start of the function and captured in a local variable. llvm-svn: 168548
* Refactor a bit to make some helper methods static.Craig Topper2012-11-242-39/+20
| | | | llvm-svn: 168546
* libLTO: Add a utility method to initialize the disassemblers.Benjamin Kramer2012-11-241-13/+0
| | | | | | | | | | | | Necessary to give disassembler users (like darwin's otool) a possibility to dlopen libLTO and still initialize the required LLVM bits. This used to go through libMCDisassembler but that's a gross layering violation, the MC layer can't pull in functions from the targets. Adding a function to libLTO is a bit of a hack but not worse than exposing other disassembler bits from libLTO. Fixes PR14362. llvm-svn: 168545
OpenPOWER on IntegriCloud