summaryrefslogtreecommitdiffstats
path: root/llvm/lib
Commit message (Collapse)AuthorAgeFilesLines
...
* Refactor some code. No functionality changes.Evan Cheng2009-10-131-105/+119
| | | | llvm-svn: 84000
* Commit the removal of this file, which is now moved to lib/Analysis.Dan Gohman2009-10-131-337/+0
| | | | llvm-svn: 83999
* Move the InlineCost code from Transforms/Utils to Analysis.Dan Gohman2009-10-134-3/+340
| | | | llvm-svn: 83998
* Start refactoring the inline cost estimation code so that it can be usedDan Gohman2009-10-131-71/+71
| | | | | | for purposes other than inlining. llvm-svn: 83997
* change simplifycfg to not duplicate 'unwind' instructions. HopefullyChris Lattner2009-10-131-12/+5
| | | | | | | this will increase the likelihood of common code getting sunk towards the unwind. llvm-svn: 83996
* Make LoopUnswitch's cost estimation count Instructions, rather thanDan Gohman2009-10-131-19/+7
| | | | | | | | BasicBlocks, so that it doesn't blindly procede in the presence of large individual BasicBlocks. This addresses a class of code-size expansion problems. llvm-svn: 83992
* Make the ExecutionEngine automatically remove global mappings on when theirJeffrey Yasskin2009-10-131-30/+47
| | | | | | | GlobalValue is destroyed. Function destruction still leaks machine code and can crash on leaked stubs, but this is some progress. llvm-svn: 83987
* "there is not any instruction with attached debug info in this module" does ↵Devang Patel2009-10-131-11/+11
| | | | | | not mean "there is no debug info in this module". :) llvm-svn: 83984
* Add some ARM instruction encoding bits.Bob Wilson2009-10-131-0/+5
| | | | | | Patch by Johnny Chen. llvm-svn: 83983
* Fix regression introduced by r83894.Bob Wilson2009-10-131-1/+2
| | | | llvm-svn: 83982
* Copy metadata when value is RAUW'd. It is debatable whether this is the ↵Devang Patel2009-10-132-0/+16
| | | | | | right approach for custom metadata data in general. However, right now the only custom data user, "dbg", expects this behavior while FE is constructing llvm IR with debug info. llvm-svn: 83977
* Fix a tab. Thanks to Johnny Chen for pointing it out.Bob Wilson2009-10-131-1/+1
| | | | llvm-svn: 83973
* Force memory use markers to have a ConstantInt for the size argument.Nick Lewycky2009-10-131-0/+11
| | | | llvm-svn: 83960
* Teach BasicAA a little something about the atomic intrinsics: they can onlyNick Lewycky2009-10-131-0/+21
| | | | | | modify through the pointer they're given. llvm-svn: 83959
* Fix a -Asserts warning.Daniel Dunbar2009-10-131-2/+3
| | | | llvm-svn: 83950
* Memory dependence analysis was incorrectly stopping to scan for stores to a ↵Victor Hernandez2009-10-131-10/+5
| | | | | | | | pointer at bitcast uses of a malloc call. It should continue scanning until the malloc call, and this patch fixes that. llvm-svn: 83931
* Find enclosing subprogram info.Devang Patel2009-10-121-1/+19
| | | | llvm-svn: 83922
* Set default location for a function if it is not set.Devang Patel2009-10-121-0/+2
| | | | llvm-svn: 83921
* Fix two warnings about unused variables that are only used in assert() calls.Kevin Enderby2009-10-121-4/+4
| | | | llvm-svn: 83917
* Delete a comment that makes no sense to me. The statement that moving a CPEBob Wilson2009-10-121-2/+1
| | | | | | | | | before its reference is only supported on ARM has not been true for a while. In fact, until recently, that was only supported for Thumb. Besides that, CPEs are always a multiple of 4 bytes in size, so inserting a CPE should have no effect on Thumb alignment. llvm-svn: 83916
* Fix a problem in the code where ARMAsmParser::ParseShift() second argumentKevin Enderby2009-10-121-2/+2
| | | | | | should have been a pointer to a reference. llvm-svn: 83915
* Make licm debug message readable.Evan Cheng2009-10-121-1/+2
| | | | llvm-svn: 83908
* Change CreateNewWater method to return NewMBB by reference.Bob Wilson2009-10-121-8/+8
| | | | llvm-svn: 83905
* Last week, ARMConstantIslandPass was failing to converge for theBob Wilson2009-10-121-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | MultiSource/Benchmarks/MiBench/automotive-susan test. The failure has since been masked by an unrelated change (just randomly), so I don't have a testcase for this now. Radar 7291928. The situation where this happened is that a constant pool entry (CPE) was placed at a lower address than the load that referenced it. There were in fact 2 CPEs placed at adjacent addresses and referenced by 2 loads that were close together in the code. The distance from the loads to the CPEs was right at the limit of what they could handle, so that only one of the CPEs could be placed within range. On every iteration, the first CPE was found to be out of range, causing a new CPE to be inserted. The second CPE had been in range but the newly inserted entry pushed it too far away. Thus the second CPE was also replaced by a new entry, which in turn pushed the first CPE out of range. Etc. Judging from some comments in the code, the initial implementation of this pass did not support CPEs placed _before_ their references. In the case where the CPE is placed at a higher address, the key to making the algorithm terminate is that new CPEs are only inserted at the end of a group of adjacent CPEs. This is implemented by removing a basic block from the "WaterList" once it has been used, and then adding the newly inserted CPE block to the list so that the next insertion will come after it. This avoids the ping-pong effect where CPEs are repeatedly moved to the beginning of a group of adjacent CPEs. This does not work when going backwards, however, because the entries at the end of an adjacent group of CPEs are closer than the CPEs earlier in the group. To make this pass terminate, we need to maintain a property that changes can only happen in some sort of monotonic fashion. The fix used here is to require that the CPE for a particular constant pool load can only move to lower addresses. This is a very simple change to the code and should not cause any significant degradation in the results. llvm-svn: 83902
* Another minor clean-up.Bob Wilson2009-10-121-5/+5
| | | | llvm-svn: 83897
* Remove redundant parameter.Bob Wilson2009-10-121-8/+6
| | | | llvm-svn: 83894
* Use early exit to reduce indentation.Bob Wilson2009-10-121-19/+20
| | | | llvm-svn: 83874
* Change to return a value by reference.Bob Wilson2009-10-121-6/+6
| | | | llvm-svn: 83873
* Add a typedef for an iterator.Bob Wilson2009-10-121-6/+8
| | | | llvm-svn: 83872
* Revert the kludge in 76703. I got a cleanDale Johannesen2009-10-123-30/+25
| | | | | | | | | bootstrap of FSF-style PPC, so there is some reason to believe the original bug (which was never analyzed) has been fixed, probably by 82266. llvm-svn: 83871
* Fix warning.Dale Johannesen2009-10-121-1/+1
| | | | llvm-svn: 83870
* Fix http://llvm.org/PR5160, to let CallbackVHs modify other ValueHandles on theJeffrey Yasskin2009-10-121-23/+46
| | | | | | same Value without breaking things. llvm-svn: 83861
* Remove a redundant member variable.Dan Gohman2009-10-121-1/+0
| | | | llvm-svn: 83857
* Don't forget to mark RAX as live-out of the function when arranging forDan Gohman2009-10-121-0/+3
| | | | | | | | | it to hold the address of an sret return value, for x86-64 ABI purposes. Also, fix the test that was originally intended to test this to actually test it, using FileCheck. llvm-svn: 83853
* More heuristics for Combiner-AA. Still catches all important cases, butNate Begeman2009-10-121-6/+19
| | | | | | | compile time penalty on gnugo, the worst case in MultiSource, is down to about 2.5% from 30% llvm-svn: 83824
* Haiku porting patches, Credit to Paul Davey.Edward O'Callaghan2009-10-121-1/+1
| | | | llvm-svn: 83823
* Fix PR5087, patch by Jakub Staszak!Chris Lattner2009-10-122-2/+3
| | | | llvm-svn: 83822
* add some more hooks to the C bindings, patch by Kenneth Uildriks!Chris Lattner2009-10-121-1/+59
| | | | llvm-svn: 83821
* populate instcombine's initial worklist more carefully, causingChris Lattner2009-10-121-18/+26
| | | | | | | | | | | it to visit instructions from the start of the function to the end of the function in the first path. This greatly speeds up some pathological cases (e.g. PR5150). Try #3, this time with some unneeded debug info stuff removed which was causing dead pointers to be added to the worklist. llvm-svn: 83818
* revert r83814 for now, it is making the llvm-gcc bootstrap unhappy.Chris Lattner2009-10-111-26/+1
| | | | llvm-svn: 83817
* populate instcombine's initial worklist more carefully, causingChris Lattner2009-10-111-1/+26
| | | | | | | | it to visit instructions from the start of the function to the end of the function in the first path. This greatly speeds up some pathological cases (e.g. PR5150). llvm-svn: 83814
* Add missed mem-mem move patternsAnton Korobeynikov2009-10-111-0/+7
| | | | llvm-svn: 83812
* Add MSP430 mem-mem insts support. Patch by Brian Lucas with some my refinementsAnton Korobeynikov2009-10-111-0/+127
| | | | llvm-svn: 83811
* remove some harmful code that would turn an insertelement on an undefChris Lattner2009-10-111-22/+0
| | | | | | | | | | | into a shuffle even if it was used by another insertelement. If the visitation order of instcombine was wrong, this would turn a chain of insertelements into a chain of shufflevectors, which was quite painful. Since CollectShuffleElements handles these cases, the code can just be nuked. llvm-svn: 83810
* teach instcombine to simplify xor's harder, catching theChris Lattner2009-10-111-0/+27
| | | | | | new testcase. llvm-svn: 83799
* cleanupsChris Lattner2009-10-111-20/+18
| | | | llvm-svn: 83797
* cleanup, no functionality change.Chris Lattner2009-10-111-34/+33
| | | | llvm-svn: 83795
* generalize a transformation even more: we don't care whether theChris Lattner2009-10-111-12/+10
| | | | | | | | | input the the mul is a zext from bool, just that it is all zeros other than the low bit. This fixes some phase ordering issues that would cause us to miss some xforms in mul.ll when the worklist is visited differently. llvm-svn: 83794
* simplify a transformation by making it more general.Chris Lattner2009-10-111-32/+14
| | | | llvm-svn: 83792
* temporarily revert previous patchChris Lattner2009-10-111-14/+1
| | | | llvm-svn: 83791
OpenPOWER on IntegriCloud