summaryrefslogtreecommitdiffstats
path: root/llvm
Commit message (Collapse)AuthorAgeFilesLines
* simplify the code a bit using isOperationLegalChris Lattner2005-08-251-4/+3
| | | | llvm-svn: 23053
* Add support for sdiv by 2^k and -2^k. Producing code like:Chris Lattner2005-08-251-1/+27
| | | | | | | | | _test: srawi r2, r3, 2 addze r3, r2 blr llvm-svn: 23052
* fit in 80 colsChris Lattner2005-08-251-1/+1
| | | | llvm-svn: 23051
* Add support for flag operandsChris Lattner2005-08-251-8/+18
| | | | llvm-svn: 23050
* add a methodChris Lattner2005-08-251-0/+10
| | | | llvm-svn: 23049
* add an enum valueChris Lattner2005-08-252-3/+5
| | | | llvm-svn: 23048
* Remove Support/Search.h entryJim Laskey2005-08-251-3/+1
| | | | llvm-svn: 23047
* Recommended to use std::algorithms instead.Jim Laskey2005-08-251-78/+0
| | | | llvm-svn: 23046
* Added Support/Search.h to project.Jim Laskey2005-08-251-66/+4
| | | | llvm-svn: 23045
* Added support for generic linear/binary search.Jim Laskey2005-08-251-0/+78
| | | | llvm-svn: 23044
* Fix a problem Duraid noticed, where we weren't removing values from the killsChris Lattner2005-08-251-2/+20
| | | | | | list when doing two-address and phi node lowering during register allocation. llvm-svn: 23043
* Implement support for taking the address of constant pool indices, whichChris Lattner2005-08-251-0/+10
| | | | | | | is used by the int -> FP code among other things. This gets 2005-05-12-Int64ToFP past that failure, to dying on lack of support for add_parts llvm-svn: 23042
* ADd support for TargetConstantPool nodesChris Lattner2005-08-251-1/+14
| | | | llvm-svn: 23041
* Add support for TargetConstantPool nodeChris Lattner2005-08-252-4/+8
| | | | llvm-svn: 23040
* For PR614:Reid Spencer2005-08-252-21/+19
| | | | | | | | | | Move the implementation of the fix from Makefile.rules to Makefile. This ensures that it is only checked on a top-level rebuild, and not in every single subdirectory. This removes some annoying messages from the build and numerous executions of config.status if the .in file changes but not substantively enough to cause the .h file to be modified by config.status. llvm-svn: 23039
* Add support for FP constants, fixing UnitTests/2004-02-02-NegativeZeroChris Lattner2005-08-251-6/+25
| | | | llvm-svn: 23038
* Don't attempt to update LLVM configured header files from a build in aReid Spencer2005-08-251-0/+5
| | | | | | project. Thanks to Chris for pointing out this deficiency. llvm-svn: 23037
* Fully implement frame index, so that we can pass the address of alloca'sChris Lattner2005-08-251-4/+12
| | | | | | around to functions and stuff llvm-svn: 23036
* add a new TargetFrameIndex nodeChris Lattner2005-08-253-5/+20
| | | | llvm-svn: 23035
* implement unconditional branches, fixing UnitTests/2003-05-02-DependentPHI.cChris Lattner2005-08-251-1/+4
| | | | llvm-svn: 23034
* LFS/STFS load and store FP values, not integer ones. This change allows usChris Lattner2005-08-251-4/+4
| | | | | | | | | | | | | | | | | | | | | | | to codegen this: float foo() { return 1.245; } into this: _foo: lis r2, ha16(.CPI_foo_0) lfs f1, lo16(.CPI_foo_0)(r2) blr instead of this: _foo: lis r2, ha16(.CPI_foo_0) lfs r2, lo16(.CPI_foo_0)(r2) <-- ouch or f1, r2, r2 <-- ouch blr with the dag isel. llvm-svn: 23033
* Fix a broken assertionChris Lattner2005-08-251-1/+1
| | | | llvm-svn: 23032
* Fix a warningChris Lattner2005-08-251-0/+1
| | | | llvm-svn: 23031
* fix a warning in optimized buildChris Lattner2005-08-251-1/+1
| | | | llvm-svn: 23030
* Fix some warningsChris Lattner2005-08-252-0/+2
| | | | llvm-svn: 23029
* Split IMPLICIT_DEF into IMPLICIT_DEF_GPR and IMPLICIT_DEF_FP, so that theChris Lattner2005-08-245-7/+21
| | | | | | | instructions take a consistent reg class. Implement ISD::UNDEF in the dag->dag selector to generate this, fixing UnitTests/2003-07-06-IntOverflow. llvm-svn: 23028
* add a methodChris Lattner2005-08-242-0/+7
| | | | llvm-svn: 23027
* implement support for callsChris Lattner2005-08-241-3/+99
| | | | llvm-svn: 23026
* Add ReplaceAllUsesWith that can take a vector of replacement values.Chris Lattner2005-08-241-15/+90
| | | | | | Add some foldings to hopefully help the illegal setcc issue, and move some code around. llvm-svn: 23025
* add two new methodsChris Lattner2005-08-241-0/+5
| | | | llvm-svn: 23024
* Remove some dead cases.Chris Lattner2005-08-241-7/+1
| | | | | | | | | | | | | Emit the indcall sequence as: mtctr inreg mr R12, inreg btctr If inreg and R12 aren't coallesced, this reduces the odds of having the mtctr and btctr in the same dispatch group. :) llvm-svn: 23023
* Add support for external symbols, and support for variable arity instructionsChris Lattner2005-08-241-5/+12
| | | | llvm-svn: 23022
* Fix pasto that prevented VT ndoes from showing up in -view-isel-dags correctlyChris Lattner2005-08-241-1/+1
| | | | llvm-svn: 23021
* add an ideaChris Lattner2005-08-241-0/+30
| | | | llvm-svn: 23020
* Fix Regression/Transforms/Reassociate/2005-08-24-Crash.llChris Lattner2005-08-241-1/+7
| | | | llvm-svn: 23019
* new testcase that crashes -reassociateChris Lattner2005-08-241-0/+12
| | | | llvm-svn: 23018
* Transform floor((double)FLT) -> (double)floorf(FLT), implementingChris Lattner2005-08-241-17/+55
| | | | | | | Regression/Transforms/SimplifyLibCalls/floor.ll. This triggers 19 times in 177.mesa. llvm-svn: 23017
* new testcaseChris Lattner2005-08-242-1/+11
| | | | llvm-svn: 23016
* floor/ceil don't read/write memory. This allows gcse to eliminate 6 callsChris Lattner2005-08-241-0/+2
| | | | | | in mesa. llvm-svn: 23015
* Make sure this doesn't break when we're improving the iselsChris Lattner2005-08-241-0/+7
| | | | llvm-svn: 23014
* teach selection dag mask tracking about the fact that select_cc operates likeChris Lattner2005-08-241-1/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | select. Also teach it that the bit count instructions can only set the low bits of the result, depending on the size of the input. This allows us to compile this: int %eq0(int %a) { %tmp.1 = seteq int %a, 0 ; <bool> [#uses=1] %tmp.2 = cast bool %tmp.1 to int ; <int> [#uses=1] ret int %tmp.2 } To this: _eq0: cntlzw r2, r3 srwi r3, r2, 5 blr instead of this: _eq0: cntlzw r2, r3 rlwinm r3, r2, 27, 31, 31 blr when setcc is marked illegal on ppc (which restores parity to non-illegal setcc). Thanks to Nate for pointing this out. llvm-svn: 23013
* Start using isOperationLegal and isTypeLegal to simplify the codeChris Lattner2005-08-241-28/+23
| | | | llvm-svn: 23012
* rename hasNativeSupportFor* -> is(Operation|Type)Legal.Chris Lattner2005-08-241-10/+12
| | | | llvm-svn: 23011
* Adjust to new interfaceChris Lattner2005-08-241-4/+4
| | | | llvm-svn: 23010
* Wrap long linesMisha Brukman2005-08-241-2/+4
| | | | llvm-svn: 23009
* Remove some tabs.Reid Spencer2005-08-241-4/+5
| | | | | | Wrap a line. llvm-svn: 23008
* Whoops, don't use PROJ variables, these are all LLVM headers. This allowsReid Spencer2005-08-241-3/+3
| | | | | | projects to compile properly. llvm-svn: 23007
* For PR619:Reid Spencer2005-08-242-0/+20
| | | | | | | | | | | | Make any header files that are automatically generated be preconditions of the compilation. This ensures that if a *.h.in file is changed then its corresponding *.h file gets updated on the next rebuild. Note that this can lead to confusing (but correct) results if the *.h.in file changed unsubstantially so that autoheader doesn't update the *.h file. In that case, manually touch the *.h file in question to restore order. Moral of the story, if you're going to "touch" a *.in file then modify it substantially. llvm-svn: 23006
* For PR616:Reid Spencer2005-08-246-51/+116
| | | | | | | | | | These patches make threading optional in LLVM. The configuration scripts are now modified to accept a --disable-threads switch. If this is used, the Mutex class will be implemented with all functions as no-op. Furthermore, linking against libpthread will not be done. Finally, the ParallelJIT example needs libpthread so its makefile was changed to always add -lpthread to the link line. llvm-svn: 23003
* Whoops, fix a thinko. All cases except SETNE are now handled by theNate Begeman2005-08-241-11/+3
| | | | | | target independent code in SelectionDAG.cpp llvm-svn: 23002
OpenPOWER on IntegriCloud