summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* replace TRI->isVirtualRegister() with TargetRegisterInfo::isVirtualRegister()Jim Grosbach2009-09-302-5/+4
| | | | | | per customary usage llvm-svn: 83137
* When checking whether we need to reserve a register for the scavenger,Jim Grosbach2009-09-301-1/+7
| | | | | | the size of the saved frame pointer needs to be taken into account. llvm-svn: 83136
* Add "isBarrier = 1" to return instructions.Jim Grosbach2009-09-303-5/+5
| | | | | | Patch by Sylvere Teissier. llvm-svn: 83135
* fix compiler warningJim Grosbach2009-09-301-1/+1
| | | | llvm-svn: 83132
* For Darwin, emit all the text section directives together before the dwarfBob Wilson2009-09-301-0/+19
| | | | | | | | section directives. This causes the assembler to put the text sections at the beginning of the object file, which helps work around a limitation of the Darwin ARM relocations. Radar 7255355. llvm-svn: 83127
* Simplify.Devang Patel2009-09-301-6/+0
| | | | llvm-svn: 83123
* Remove -post-RA-schedule flag and add a TargetSubtarget method to enable ↵David Goodwin2009-09-305-10/+20
| | | | | | post-register-allocation scheduling. By default it is off. For ARM, enable/disable with -mattr=+/-postrasched. Enable by default for cortex-a8. llvm-svn: 83122
* Add a way for a frontend to generate more complex dwarf locationMike Stump2009-09-303-6/+92
| | | | | | | | | | | | | | | | | | information. This allows arbitrary code involving DW_OP_plus_uconst and DW_OP_deref. The scheme allows for easy extention to include, any, or all of the DW_OP_ opcodes. I thought about just exposing all of them, but, wasn't sure if people wanted the dwarf opcodes exposed in the api. Is that a layering violation? With this scheme, the entire existing block scheme used by llvm-gcc can be switched over to the new scheme. I think that would be cleaner, as then the compiler specific bits are not present in llvm proper. Before the old code can be yanked however, similar code in clang would have to be removed. Next up, more testing. llvm-svn: 83120
* minor cleanup and add clarifying commentJim Grosbach2009-09-291-7/+9
| | | | llvm-svn: 83117
* Lookup handler name only when assertions are enabled.Devang Patel2009-09-291-2/+2
| | | | llvm-svn: 83114
* Add removeMD().Devang Patel2009-09-291-15/+33
| | | | llvm-svn: 83107
* Only one custom meadata of each kind can be attached with an instruction.Devang Patel2009-09-293-11/+21
| | | | llvm-svn: 83105
* Additional check for regno==0Jim Grosbach2009-09-291-1/+1
| | | | llvm-svn: 83103
* Use assertion instead of early exit to catch malformed custom metadata store.Devang Patel2009-09-291-5/+3
| | | | llvm-svn: 83102
* Remove unnecessary cast.Devang Patel2009-09-291-4/+2
| | | | llvm-svn: 83100
* Remove std::string uses from DebugInfo interface.Devang Patel2009-09-297-129/+94
| | | | llvm-svn: 83083
* Simplify the tracking of virtual frame index registers. Ranges cannot overlap,Jim Grosbach2009-09-291-20/+31
| | | | | | | so a simple "current register" will suffice. Also add some additional sanity-checking assertions to make sure things are as we expect. llvm-svn: 83081
* Moving register scavenging to a post pass results in virtual registers inJim Grosbach2009-09-291-2/+3
| | | | | | | the instruction we're scavenging for. The scavenger needs to know to avoid them when analyzing register usage. llvm-svn: 83077
* Fix PR4687. Pre ARMv5te does not support ldrd / strd. Patch by John Tytgat.Evan Cheng2009-09-291-0/+4
| | | | llvm-svn: 83058
* Parse custom metadata attached with an instruction.Devang Patel2009-09-296-29/+59
| | | | llvm-svn: 83033
* Adjust processFunctionBeforeCalleeSavedScan() to correctly reserve a stackJim Grosbach2009-09-281-2/+4
| | | | | | slot for the register scavenger when compiling Thumb1 functions. llvm-svn: 83023
* Add C API calls for building FNeg operations. Patch by KS Sreeram!Dan Gohman2009-09-281-0/+4
| | | | llvm-svn: 83021
* s/class Metadata/class MetadataContext/gDevang Patel2009-09-289-31/+31
| | | | llvm-svn: 83019
* Do not use global typedef for MDKindID.Devang Patel2009-09-285-11/+11
| | | | llvm-svn: 83016
* When extending the operands of an addrec, iterate through allDan Gohman2009-09-281-5/+5
| | | | | | | the operands, rather than trying to partition them into a start and a step. This handles non-affine add recurrences correctly. llvm-svn: 83011
* Do not hardcode metadata names.Devang Patel2009-09-281-4/+18
| | | | llvm-svn: 83010
* Fix Thumb2 IT block pass bug. t2MOVi32imm may not be the start of a IT block.Evan Cheng2009-09-281-21/+42
| | | | llvm-svn: 83008
* Use KILL instead of IMPLICIT_DEF in LowerSubregs pass.Jakob Stoklund Olesen2009-09-282-14/+13
| | | | llvm-svn: 83007
* Introduce the TargetInstrInfo::KILL machine instruction and get rid of theJakob Stoklund Olesen2009-09-287-0/+8
| | | | | | | | | | unused DECLARE instruction. KILL is not yet used anywhere, it will replace TargetInstrInfo::IMPLICIT_DEF in the places where IMPLICIT_DEF is just used to alter liveness of physical registers. llvm-svn: 83006
* Create a README.txt for lib/Analysis, and add an entry.Dan Gohman2009-09-281-0/+18
| | | | llvm-svn: 83001
* Remove dead code.Devang Patel2009-09-281-5/+1
| | | | llvm-svn: 82999
* Use VerifySchedule instead of doing the work manually.Dan Gohman2009-09-281-33/+3
| | | | llvm-svn: 82995
* Fix this debug output to handle the case where the loop has been deleted.Dan Gohman2009-09-281-1/+2
| | | | llvm-svn: 82994
* Include the name of the loop header in debug messages.Dan Gohman2009-09-281-4/+9
| | | | llvm-svn: 82993
* Remove a redundant #ifndef and add an assertion string.Dan Gohman2009-09-281-3/+1
| | | | llvm-svn: 82991
* Convert LoopSimplify and LoopExtractor from FunctionPass to LoopPass.Dan Gohman2009-09-282-146/+89
| | | | llvm-svn: 82990
* Pass the optimization level when constructing the ARM instruction selector.Bob Wilson2009-09-283-6/+9
| | | | | | | Otherwise, it is always set to "default", which prevents debug info from even being generated during isel. Radar 7250345. llvm-svn: 82988
* Make ARM and Thumb2 32-bit immediate materialization into a single 32-bit pseudoEvan Cheng2009-09-2811-25/+83
| | | | | | | | | instruction. This makes it re-materializable. Thumb2 will split it back out into two instructions so IT pass will generate the right mask. Also, this expose opportunies to optimize the movw to a 16-bit move. llvm-svn: 82982
* Fix thinko in my recent movt commit: it's not safe to remat movt, since it ↵Anton Korobeynikov2009-09-282-4/+1
| | | | | | | | has input reg argument. Disable rematting of it for now. llvm-svn: 82975
* The select instruction is not neccesarily in the same block as theChris Lattner2009-09-281-2/+3
| | | | | | | | phi nodes. Make sure to phi translate from the right block. This fixes a llvm-building-llvm failure on GVN-PRE.cpp llvm-svn: 82970
* Coalescer should not delete extract_subreg, insert_subreg, and subreg_to_reg ofEvan Cheng2009-09-281-3/+16
| | | | | | | | | | | physical registers. This is especially critical for the later two since they start the live interval of a super-register. e.g. %DO<def> = INSERT_SUBREG %D0<undef>, %S0<kill>, 1 If this instruction is eliminated, the register scavenger will not be happy as D0 is not defined previously. This fixes PR5055. llvm-svn: 82968
* Remove temporary debugging hack.Dan Gohman2009-09-281-1/+1
| | | | llvm-svn: 82953
* Move the dominator verification code out of special code embedded withinDan Gohman2009-09-284-58/+72
| | | | | | | | | | | | the PassManager code into a regular verifyAnalysis method. Also, reorganize loop verification. Make the LoopPass infrastructure call verifyLoop as needed instead of having LoopInfo::verifyAnalysis check every loop in the function after each looop pass. Add a new command-line argument, -verify-loop-info, to enable the expensive full checking. llvm-svn: 82952
* Move this assert to check the condition as soon as it is known.Dan Gohman2009-09-281-1/+1
| | | | llvm-svn: 82951
* Extend the StartPassTimer and StopPassTimer functions so that theDan Gohman2009-09-283-32/+26
| | | | | | | | code that stops the timer doesn't have to search to find the timer object before it stops the timer. This avoids a lock acquisition and a few other things done with the timer running. llvm-svn: 82949
* Use movt/movw pair to materialize 32 bit constants on ARMv6T2+.Anton Korobeynikov2009-09-274-40/+68
| | | | | | This should be better than single load from constpool. llvm-svn: 82948
* Fix an old copy+pasto.Dan Gohman2009-09-271-1/+1
| | | | llvm-svn: 82947
* Extract the code for inserting a loop into the loop queue intoDan Gohman2009-09-271-3/+7
| | | | | | a separate function. llvm-svn: 82946
* When a loop is deleted, immediately release all of the activeDan Gohman2009-09-271-0/+9
| | | | | | | | LoopPasses for that loop. This avoids trouble with the PassManager trying to call verifyAnalysis on them, and frees up some memory sooner rather than later. llvm-svn: 82945
* Extract the code for releasing a pass into a separate function, andDan Gohman2009-09-271-24/+25
| | | | | | tidy it up a little. llvm-svn: 82944
OpenPOWER on IntegriCloud