summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
* Short-circuit inttoptr-ptrtoint constant expressions; these aren'tDan Gohman2009-05-011-1/+8
| | | | | | | always folded by the regular constant folder because it doesn't have TargetData information. llvm-svn: 70553
* Minor whitespace fix.Dan Gohman2009-05-011-1/+1
| | | | llvm-svn: 70551
* Fix an 80-column violation.Dan Gohman2009-05-011-1/+2
| | | | llvm-svn: 70550
* When creating cast scevs, canonicalize the destination type. ThisDan Gohman2009-05-011-0/+9
| | | | | | avoids duplicate scevs that differ only in type. llvm-svn: 70549
* Fix some code to work if TargetLowering is not available.Dan Gohman2009-05-011-4/+8
| | | | llvm-svn: 70546
* Simplify more code and add timer stuff.Bill Wendling2009-05-011-7/+32
| | | | llvm-svn: 70539
* Simplify more code.Bill Wendling2009-05-011-9/+4
| | | | llvm-svn: 70537
* hasSCEV() was declared in ScalarEvolution.h, but never defined. This must haveTorok Edwin2009-05-011-0/+6
| | | | | | gone lost during the pImpl conversion. llvm-svn: 70536
* Simplify some code.Bill Wendling2009-05-011-8/+5
| | | | llvm-svn: 70534
* Fix whitespace. It was confusing me.Bill Wendling2009-05-011-21/+20
| | | | llvm-svn: 70533
* Code clean up. Bye bye PhysRegTracker.Evan Cheng2009-05-012-99/+83
| | | | llvm-svn: 70524
* Fix compilation for some targets other than x86.Argyrios Kyrtzidis2009-04-302-2/+0
| | | | llvm-svn: 70522
* Make DebugLoc independent of DwarfWriter.Argyrios Kyrtzidis2009-04-308-62/+46
| | | | | | | | -Replace DebugLocTuple's Source ID with CompileUnit's GlobalVariable* -Remove DwarfWriter::getOrCreateSourceID -Make necessary changes for the above (fix callsites, etc.) llvm-svn: 70520
* Set FnEnd in JITEmitter::finishFunction to point strictly to the end of ↵Argyrios Kyrtzidis2009-04-301-3/+6
| | | | | | | | function's machine code. Don't include memory allocated for global variables during relocations resolution. llvm-svn: 70517
* Join cross class copies using getCommonSubClass()Jakob Stoklund Olesen2009-04-301-20/+8
| | | | llvm-svn: 70513
* getCommonSubClass() - Calculate the largest common sub-class of two registerJakob Stoklund Olesen2009-04-301-0/+42
| | | | | | | | | classes. This is implemented as a function rather than a method on TargetRegisterClass because it is symmetric in its arguments. llvm-svn: 70512
* Add some comments, and tidy up some whitespace.Dan Gohman2009-04-301-5/+7
| | | | llvm-svn: 70510
* Extend ScalarEvolution's getBackedgeTakenCount to be able toDan Gohman2009-04-301-65/+127
| | | | | | | | | | | | compute an upper-bound value for the trip count, in addition to the actual trip count. Use this to allow getZeroExtendExpr and getSignExtendExpr to fold casts in more cases. This may eventually morph into a more general value-range analysis capability; there are certainly plenty of places where more complete value-range information would allow more folding. llvm-svn: 70509
* Add a smarter heuristic to determine when to coalesce a virtual register ↵Evan Cheng2009-04-302-20/+173
| | | | | | | | with a physical one. More specifically, it avoid tying a virtual register in the loop with a physical register defined / used outside the loop. When it determines it's not profitable, it will use the physical register as the allocation preference instead. This is *not* turned on by default. Testing indicates this is just as likely to pessimize code. The main issue seems to be allocation preference doesn't work effectively. That will change once I've taught register allocator "swapping". llvm-svn: 70503
* Don't try to mix integers and pointers in an icmp instructionDan Gohman2009-04-301-12/+19
| | | | | | in getSCEVAtScope. llvm-svn: 70495
* Move helper functions for optimizing division by constant into the APIntJay Foad2009-04-302-101/+94
| | | | | | class. llvm-svn: 70488
* Set mayLoad on MOVZX32_NOREXrm8 too.Dan Gohman2009-04-301-0/+1
| | | | llvm-svn: 70466
* Fix ScalarEvolution::print to print a value for any Instruction withDan Gohman2009-04-301-1/+1
| | | | | | a SCEVable type, not just integer types. llvm-svn: 70463
* Mark MOV8mr_NOREX and MOV8rm_NOREX as mayStore / mayLoad respectively.Evan Cheng2009-04-301-1/+3
| | | | llvm-svn: 70461
* fix a regression handling indirect results: these need to be consideredChris Lattner2009-04-301-8/+13
| | | | | | | | memory operands otherwise the writebacks get lost when the inline asm doesn't otherwise have side effects. This fixes rdar://6839427, though clang really shouldn't generate these anymore. llvm-svn: 70455
* Fix the JIT bindings for ocaml.Bill Wendling2009-04-301-3/+4
| | | | llvm-svn: 70454
* remove progname which is never set. PR4085Chris Lattner2009-04-301-2/+1
| | | | llvm-svn: 70453
* Instead of passing in an unsigned value for the optimization level, use an enum,Bill Wendling2009-04-2968-196/+285
| | | | | | | which better identifies what the optimization is doing. And is more flexible for future uses. llvm-svn: 70440
* Add support for a character after a command line option. Like '-Os'.Bill Wendling2009-04-291-0/+3
| | | | llvm-svn: 70437
* Print correct instruction in dump.Dale Johannesen2009-04-291-1/+1
| | | | llvm-svn: 70427
* Fix infinite recursion in the C++ code which handles movddup by making it ↵Nate Begeman2009-04-293-48/+15
| | | | | | unnecessary. llvm-svn: 70425
* Implement getSCEVAtScope for SCEV cast expressions.Dan Gohman2009-04-291-2/+25
| | | | llvm-svn: 70422
* Generalize the cast-of-addrec folding to handle folding of SCEVs likeDan Gohman2009-04-291-46/+33
| | | | | | | | (sext i8 {-128,+,1} to i64) to i64 {-128,+,1}, where the iteration crosses from negative to positive, but is still safe if the trip count is within range. llvm-svn: 70421
* Reword and tidy up some comments.Dan Gohman2009-04-291-10/+21
| | | | llvm-svn: 70416
* MachineInstr::isRegTiedTo{Use,Def}Operand can safely be made const.Jakob Stoklund Olesen2009-04-291-2/+4
| | | | llvm-svn: 70408
* Include the source type in SCEV cast expression debug output, andDan Gohman2009-04-291-3/+3
| | | | | | | print sext, zext, and trunc, instead of signextend, zeroextend, and truncate, respectively, for consistency with the main IR. llvm-svn: 70405
* Update comment, replace theoretically impossible check with an assert.Nate Begeman2009-04-291-3/+1
| | | | llvm-svn: 70391
* Fix recent regression in gcc.dg/pr26719.c (6835035).Dale Johannesen2009-04-291-2/+5
| | | | llvm-svn: 70386
* spillPhysRegAroundRegDefsUses() may have invalidated iterators stored in ↵Evan Cheng2009-04-291-0/+9
| | | | | | fixed_ IntervalPtrs. Reset them. llvm-svn: 70378
* Implement review feedback for vector shuffle work.Nate Begeman2009-04-298-127/+139
| | | | llvm-svn: 70372
* Add a public method called getAddressSpace() to the GlobalAddressSDNode.Sanjiv Gupta2009-04-292-2/+8
| | | | llvm-svn: 70366
* Disable the load-shrinking optimization from looking atChris Lattner2009-04-291-3/+6
| | | | | | | | | | | anything larger than 64-bits, avoiding a crash. This should really be fixed to use APInts, though type legalization happens to help us out and we get good code on the attached testcase at least. This fixes rdar://6836460 llvm-svn: 70360
* Update comments to reflect the current code.Dan Gohman2009-04-291-4/+4
| | | | llvm-svn: 70357
* Determine allocation 'preference' with right register class. I haven't seen ↵Evan Cheng2009-04-291-8/+10
| | | | | | this changing codegen so no test case. llvm-svn: 70351
* The second part of the change from -fast to -O#. This changes the JIT to acceptBill Wendling2009-04-297-20/+20
| | | | | | | an optimization level instead of a simple boolean telling it to generate code "fast" or the other type of "fast". llvm-svn: 70347
* Second attempt:Bill Wendling2009-04-2961-276/+315
| | | | | | | | | | | | Massive check in. This changes the "-fast" flag to "-O#" in llc. If you want to use the old behavior, the flag is -O0. This change allows for finer-grained control over which optimizations are run at different -O levels. Most of this work was pretty mechanical. The majority of the fixes came from verifying that a "fast" variable wasn't used anymore. The JIT still uses a "Fast" flag. I'll change the JIT with a follow-up patch. llvm-svn: 70343
* Properly print 'P' modifier on inline asm memory operands.Anton Korobeynikov2009-04-282-8/+9
| | | | | | | This should fix PR3379 and PR4064. Patch inspired by Edwin Török! llvm-svn: 70328
* Move getMatchingSuperReg() out of coalescer and into TargetRegisterInfo.Evan Cheng2009-04-281-16/+4
| | | | llvm-svn: 70309
* GlobalValue is always pointer type, so an assert isn't required.Sanjiv Gupta2009-04-281-6/+1
| | | | llvm-svn: 70300
* Fix choice of version of Windows callback to use to consider not only the ↵Stefanus Du Toit2009-04-281-1/+12
| | | | | | | | Visual Studio version, but also the Windows SDK version. Patch by Tareq Siraj. llvm-svn: 70299
OpenPOWER on IntegriCloud