summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* 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
* Add a mention of TypeBuilder to the programmer's manual, and clean up the classJeffrey Yasskin2009-04-302-6/+47
| | | | | | comment a bit. llvm-svn: 70515
* 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-302-0/+46
| | | | | | | | | classes. This is implemented as a function rather than a method on TargetRegisterClass because it is symmetric in its arguments. llvm-svn: 70512
* Slightly change TableGen's definition of a register subclass.Jakob Stoklund Olesen2009-04-301-1/+14
| | | | | | | | | | | | | | | | | | | | | | | A subclass is allowed to have a larger spill size than the superclass, and the spill alignment must be a multiple of the superclass alignment. This causes the following new subclass relations: === Alpha === F4RC -> F8RC === PPC === F4RC -> F8RC === SPU === R8C -> R16C -> R32C/R32FP -> R64C/R64FP -> GPRC/VECREG === X86 === FR32 -> FR64 -> VR128 RFP32 -> RFP64 -> RFP80 These subclass relations are consistent with the behaviour of -join-cross-class-copies. llvm-svn: 70511
* Add some comments, and tidy up some whitespace.Dan Gohman2009-04-302-6/+9
| | | | llvm-svn: 70510
* Extend ScalarEvolution's getBackedgeTakenCount to be able toDan Gohman2009-04-305-70/+277
| | | | | | | | | | | | 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
* Rename the CurMultiClass formal parameter of TGParser::AddSubMultiClassBob Wilson2009-04-302-10/+11
| | | | | | | so that it doesn't shadow the instance variable of the same name. Make the parameter names in method declarations match the definitions. llvm-svn: 70502
* Remove unnecessary "class" keywords.Bob Wilson2009-04-302-2/+2
| | | | llvm-svn: 70499
* Change forward declaration of MultiClass to use the "struct" keyword insteadBob Wilson2009-04-301-1/+1
| | | | | | of "class", so that it matches the subsequent definition. llvm-svn: 70498
* Make dataflow iteration possible on Value*, not only on User*: ↵Torok Edwin2009-04-301-4/+4
| | | | | | df_ext_iterator<Value*, SmallPtrSet<const Value*, 16> > llvm-svn: 70496
* Don't try to mix integers and pointers in an icmp instructionDan Gohman2009-04-302-12/+20
| | | | | | in getSCEVAtScope. llvm-svn: 70495
* Oops! Missed a file in my last commit.Nick Lewycky2009-04-301-0/+8
| | | | llvm-svn: 70491
* Allow a user of libLTO to specify the full pathname of the gcc executable toNick Lewycky2009-04-304-6/+38
| | | | | | | | | run when assembling. Wire this up to the gold plugin. You can now pass --plugin-opt gcc=/foo/bar/gcc and it will run that gcc instead of looking for it on the path. llvm-svn: 70490
* Move helper functions for optimizing division by constant into the APIntJay Foad2009-04-303-101/+119
| | | | | | 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-302-1/+120
| | | | llvm-svn: 70461
* Remove unused flags.Bill Wendling2009-04-302-7/+3
| | | | llvm-svn: 70459
* fix a regression handling indirect results: these need to be consideredChris Lattner2009-04-302-8/+35
| | | | | | | | 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-302-5/+6
| | | | llvm-svn: 70454
* remove progname which is never set. PR4085Chris Lattner2009-04-301-2/+1
| | | | llvm-svn: 70453
* Error out with bad optimization level specified.Bill Wendling2009-04-291-1/+3
| | | | llvm-svn: 70449
* Remove LTO optimization level.Bill Wendling2009-04-293-5/+3
| | | | llvm-svn: 70445
* Instead of passing in an unsigned value for the optimization level, use an enum,Bill Wendling2009-04-2981-251/+377
| | | | | | | 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-292-0/+26
| | | | 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-295-52/+22
| | | | | | 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-293-46/+164
| | | | | | | | (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
* Don't use 'false' for 'fast isel' here.Bill Wendling2009-04-291-2/+2
| | | | llvm-svn: 70411
* Fix this test to match the new output from scalar-evolution.Dan Gohman2009-04-291-1/+1
| | | | llvm-svn: 70410
* MachineInstr::isRegTiedTo{Use,Def}Operand can safely be made const.Jakob Stoklund Olesen2009-04-292-4/+6
| | | | llvm-svn: 70408
* Include the source type in SCEV cast expression debug output, andDan Gohman2009-04-292-5/+6
| | | | | | | 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-292-10/+8
| | | | llvm-svn: 70391
* Fix recent regression in gcc.dg/pr26719.c (6835035).Dale Johannesen2009-04-292-2/+48
| | | | llvm-svn: 70386
* Add directive to declare external globals.Sanjiv Gupta2009-04-291-0/+8
| | | | llvm-svn: 70379
* spillPhysRegAroundRegDefsUses() may have invalidated iterators stored in ↵Evan Cheng2009-04-292-0/+224
| | | | | | fixed_ IntervalPtrs. Reset them. llvm-svn: 70378
* testcase for PR4082Chris Lattner2009-04-291-0/+11
| | | | llvm-svn: 70375
* Implement review feedback for vector shuffle work.Nate Begeman2009-04-2911-133/+159
| | | | llvm-svn: 70372
* Add a public method called getAddressSpace() to the GlobalAddressSDNode.Sanjiv Gupta2009-04-293-2/+10
| | | | llvm-svn: 70366
* Disable the load-shrinking optimization from looking atChris Lattner2009-04-292-3/+22
| | | | | | | | | | | 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
* Add some more doxygen comments to SCEVAddRec.Dan Gohman2009-04-291-1/+4
| | | | llvm-svn: 70354
* 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-299-24/+24
| | | | | | | 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-2993-346/+400
| | | | | | | | | | | | 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
* Correct comment.Bill Wendling2009-04-291-1/+1
| | | | llvm-svn: 70340
OpenPOWER on IntegriCloud