summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Assigning an APInt to 0 with plain assignment gives it a one-bitDan Gohman2008-02-131-1/+1
| | | | | | size. Initialize these APInts to properly-sized zero values. llvm-svn: 47099
* Avoid setting bits that aren't demanded.Dan Gohman2008-02-131-3/+3
| | | | llvm-svn: 47098
* Fix a typo in a comment.Dan Gohman2008-02-131-1/+1
| | | | llvm-svn: 47097
* Simplify some logic in ComputeMaskedBits. And change ComputeMaskedBitsDan Gohman2008-02-1313-56/+64
| | | | | | to pass the mask APInt by value, not by reference. llvm-svn: 47096
* A loop latch phi node may have uses inside loop, not just in loop header.Devang Patel2008-02-132-4/+79
| | | | llvm-svn: 47093
* Adjust for APInt's isPositive being renamed to isNonNegative.Dan Gohman2008-02-131-6/+6
| | | | llvm-svn: 47091
* Rename APInt's isPositive to isNonNegative, to reflect what itDan Gohman2008-02-132-12/+13
| | | | | | actually does. llvm-svn: 47090
* While moving exit condition, do not drop loop latch on the floor.Devang Patel2008-02-132-4/+81
| | | | llvm-svn: 47089
* When creating the CFGBlocks for a switch statement, we now have the "default"Ted Kremenek2008-02-131-18/+41
| | | | | | | | | | | | | | | | | | | | | | branch ALWAYS be the last successor for a switch-terminated block. This allows clients to distinguish cases like the following: switch(...) case XXX: switch(...) { case YYY: ... } case ZZZ: .. } In this case, the block with "case ZZZ:" is the default block for the inner switch statement, but that case is associated with the outer switch statement, and not the inner one. Clients can test for this behavior by checking if a successor block is the last one (and thus just assume that this is the "default" case). llvm-svn: 47088
* Fixed bug in CFG construction when processing switch statements that contain noTed Kremenek2008-02-131-0/+16
| | | | | | | | "default" case. In such cases, we now correctly add the CFGBlock representing the code after the switch statement as a successor to the block terminated by the switch statement. llvm-svn: 47087
* Add countTrailingOnes member functions to APInt.Dan Gohman2008-02-132-2/+24
| | | | llvm-svn: 47086
* Fix a typo in a comment.Dan Gohman2008-02-131-1/+1
| | | | llvm-svn: 47085
* Add count{Leading,Trailing}Ones_{32,64} functions with simple implementations.Dan Gohman2008-02-131-0/+32
| | | | llvm-svn: 47084
* Keep track of exit value operand number when operands are swapped.Devang Patel2008-02-132-1/+73
| | | | llvm-svn: 47082
* Enable exception handling int JITNicolas Geoffray2008-02-1313-8/+961
| | | | llvm-svn: 47079
* New test, see comments.Dale Johannesen2008-02-131-0/+48
| | | | llvm-svn: 47078
* Fixed 80 col violations.Ted Kremenek2008-02-131-6/+6
| | | | llvm-svn: 47076
* Teach LegalizeTypes how to expand and promote CTLZ,Duncan Sands2008-02-134-30/+119
| | | | | | | | | | | | | | | | | | CTTZ and CTPOP. The expansion code differs from that in LegalizeDAG in that it chooses to take the CTLZ/CTTZ count from the Hi/Lo part depending on whether the Hi/Lo value is zero, not on whether CTLZ/CTTZ of Hi/Lo returned 32 (or whatever the width of the type is) for it. I made this change because the optimizers may well know that Hi/Lo is zero and exploit it. The promotion code for CTTZ also differs from that in LegalizeDAG: it uses an "or" to get the right result when the original value is zero, rather than using a compare and select. This also means the value doesn't need to be zero extended. llvm-svn: 47075
* avoid making implicit casts that just remove typedefs.Chris Lattner2008-02-131-1/+1
| | | | llvm-svn: 47074
* gcc 3.2.3 is also bad.Chris Lattner2008-02-131-1/+2
| | | | llvm-svn: 47073
* Unbreak the build.Ted Kremenek2008-02-131-1/+1
| | | | llvm-svn: 47072
* Renamed files to match class renaming in r47070:Ted Kremenek2008-02-133-0/+0
| | | | | | http://llvm.org/viewvc/llvm-project?rev=47070&view=rev llvm-svn: 47071
* Renamed class GREngine => GRCoreEngine.Ted Kremenek2008-02-139-111/+111
| | | | | | | | | Renamed class GRConstants => GRExprEngine. This was done with a Perl script, and will result in 80 col. violations that I will gradually fix up. llvm-svn: 47070
* Fix a minor bug in isNullPointerConstant triggered by the linux Eli Friedman2008-02-132-1/+4
| | | | | | | | | tgmath.h. Note that there is another issue with tgmath.h, so mandel.c still doesn't work. llvm-svn: 47069
* Simplify GRIndirectGotoNodeBuilder.Ted Kremenek2008-02-133-48/+30
| | | | llvm-svn: 47068
* Fix the PPC JIT regressions by encoding zeroreg as 0 for BLR.Chris Lattner2008-02-131-0/+1
| | | | llvm-svn: 47067
* remove some dead code.Chris Lattner2008-02-131-4/+0
| | | | llvm-svn: 47066
* Remove use of ltdlDevang Patel2008-02-136-5076/+17
| | | | llvm-svn: 47065
* Added GREngine support for "break" and "continue".Ted Kremenek2008-02-131-2/+4
| | | | llvm-svn: 47064
* Add notes on Ada compilers that can be used forDuncan Sands2008-02-131-10/+21
| | | | | | | the build. Put all items that the user should specify in bold. Make it a debug build. llvm-svn: 47063
* Fix typo. Thanks to Duncan for noticing.Wojciech Matyjewicz2008-02-131-1/+1
| | | | llvm-svn: 47062
* Add comments as per review feedback.Wojciech Matyjewicz2008-02-131-5/+13
| | | | llvm-svn: 47061
* Some code clean up.Evan Cheng2008-02-131-33/+34
| | | | llvm-svn: 47060
* Simplify.Evan Cheng2008-02-131-8/+8
| | | | llvm-svn: 47059
* Simplify.Evan Cheng2008-02-131-3/+1
| | | | llvm-svn: 47058
* Fix a potential serious problem where kills belonging to the val# defined by ↵Evan Cheng2008-02-131-3/+2
| | | | | | a two-address instruction is also on the val# that defines the input. llvm-svn: 47057
* * Cannot safely commute an instruction there are other defs which can reach ↵Evan Cheng2008-02-131-1/+5
| | | | | | | | its uses. * Ignore copy instructions which have already been coalesced. llvm-svn: 47056
* Add a note pointing to PR1996.Eli Friedman2008-02-131-0/+1
| | | | llvm-svn: 47055
* In SDISel, for targets that support FORMAL_ARGUMENTS nodes, lower thisChris Lattner2008-02-132-1/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | node as soon as we create it in SDISel. Previously we would lower it in legalize. The problem with this is that it only exposes the argument loads implied by FORMAL_ARGUMENTs after legalize, so that only dag combine 2 can hack on them. This causes us to miss some optimizations because datatype expansion also happens here. Exposing the loads early allows us to do optimizations on them. For example we now compile arg-cast.ll to: _foo: movl $2147483647, %eax andl 8(%esp), %eax ret where we previously produced: _foo: subl $12, %esp movsd 16(%esp), %xmm0 movsd %xmm0, (%esp) movl $2147483647, %eax andl 4(%esp), %eax addl $12, %esp ret It might also make sense to do this for ISD::CALL nodes, which have implicit stores on many targets. llvm-svn: 47054
* don't try to avoid inserting loads when lowering FORMAL_ARGUMENTS. Chris Lattner2008-02-133-39/+17
| | | | | | DAGCombine is now quite good at zapifying them. llvm-svn: 47053
* teach dag combiner how to eliminate MERGE_VALUES nodes.Chris Lattner2008-02-131-0/+14
| | | | llvm-svn: 47052
* readme updatesNate Begeman2008-02-132-0/+20
| | | | llvm-svn: 47051
* Add test for PR1996. (This is my first time adding a test for a Eli Friedman2008-02-131-0/+19
| | | | | | transform, so please review.) llvm-svn: 47050
* Add testcase for recent legalizer changeNate Begeman2008-02-131-0/+8
| | | | llvm-svn: 47049
* Support legalizing insert_vector_elt on targets where the elementNate Begeman2008-02-131-27/+40
| | | | | | type is not legal. llvm-svn: 47048
* New tests.Evan Cheng2008-02-133-0/+71
| | | | llvm-svn: 47047
* Initial support for copy elimination by commuting its definition MI.Evan Cheng2008-02-133-17/+257
| | | | | | | | | | | | | | | | | | | | | PR1877. A3 = op A2 B0<kill> ... B1 = A3 <- this copy ... = op A3 <- more uses ==> B2 = op B0 A2<kill> ... B1 = B2 <- now an identify copy ... = op B2 <- more uses This speeds up FreeBench/neural by 29%, Olden/bh by 12%, oopack_v1p8 by 53%. llvm-svn: 47046
* Make register scavenging happy by not using a reg (CR0) that isn't definedNate Begeman2008-02-131-1/+1
| | | | llvm-svn: 47045
* - Added removeValNo() to remove all live ranges of a particular value#.Evan Cheng2008-02-132-16/+68
| | | | | | - removeRange() can now update value# information. llvm-svn: 47044
* commuteInstr() can now commute non-ssa machine instrs.Evan Cheng2008-02-133-0/+28
| | | | llvm-svn: 47043
OpenPOWER on IntegriCloud