aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2005-08-25add a new TargetFrameIndex nodeChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23035 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-25implement unconditional branches, fixing UnitTests/2003-05-02-DependentPHI.cChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23034 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-25LFS/STFS load and store FP values, not integer ones. This change allows usChris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23033 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-25Fix a broken assertionChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23032 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-25Fix a warningChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23031 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-25fix a warning in optimized buildChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23030 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-25Fix some warningsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23029 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Split IMPLICIT_DEF into IMPLICIT_DEF_GPR and IMPLICIT_DEF_FP, so that theChris Lattner
instructions take a consistent reg class. Implement ISD::UNDEF in the dag->dag selector to generate this, fixing UnitTests/2003-07-06-IntOverflow. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23028 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24add a methodChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23027 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24implement support for callsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23026 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Add ReplaceAllUsesWith that can take a vector of replacement values.Chris Lattner
Add some foldings to hopefully help the illegal setcc issue, and move some code around. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23025 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24add two new methodsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23024 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Remove some dead cases.Chris Lattner
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. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23023 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Add support for external symbols, and support for variable arity instructionsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23022 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Fix pasto that prevented VT ndoes from showing up in -view-isel-dags correctlyChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23021 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24add an ideaChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23020 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Fix Regression/Transforms/Reassociate/2005-08-24-Crash.llChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23019 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24new testcase that crashes -reassociateChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23018 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Transform floor((double)FLT) -> (double)floorf(FLT), implementingChris Lattner
Regression/Transforms/SimplifyLibCalls/floor.ll. This triggers 19 times in 177.mesa. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23017 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24new testcaseChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23016 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24floor/ceil don't read/write memory. This allows gcse to eliminate 6 callsChris Lattner
in mesa. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23015 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Make sure this doesn't break when we're improving the iselsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23014 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24teach selection dag mask tracking about the fact that select_cc operates likeChris Lattner
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23013 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Start using isOperationLegal and isTypeLegal to simplify the codeChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23012 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24rename hasNativeSupportFor* -> is(Operation|Type)Legal.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23011 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Adjust to new interfaceChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23010 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Wrap long linesMisha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23009 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Remove some tabs.Reid Spencer
Wrap a line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23008 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Whoops, don't use PROJ variables, these are all LLVM headers. This allowsReid Spencer
projects to compile properly. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23007 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24For PR619:Reid Spencer
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23006 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24For PR616:Reid Spencer
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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23003 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Whoops, fix a thinko. All cases except SETNE are now handled by theNate Begeman
target independent code in SelectionDAG.cpp git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23002 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Remove unused statisticNate Begeman
Prefer 'neg X' to 'subfic 0, X' since neg does not set XER[CA] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23001 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Add the "ppc specific" setcc-equivalent select_cc casesNate Begeman
Prefer 'neg X' to 'subfic 0, X' since it does not set XER[CA] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@23000 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Teach SelectionDAG how to simplify a few more setcc-equivalent select_ccNate Begeman
nodes so that backends don't have to. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22999 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Add callseq_begin/end supportChris Lattner
Call stil not supported yet git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22998 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Make -view-isel-dags show the dag before instruction selecting, in caseChris Lattner
the target isel crashes due to unimplemented features like calls :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22997 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Fix optimization of select_cc seteq X, 0, 1, 0 -> srl (ctlz X), log2 X sizeNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22995 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Implement LiveVariables.h changeChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22994 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-24Keep the killed/dead sets sorted, so that "KillsRegister" can do a quickChris Lattner
binary search to test for membership. This speeds up LLC a bit more on KC++, e.g. on itanium from 16.6974s to 14.8272s, PPC from 11.4926s to 10.7089s and X86 from 10.8128s to 9.7943s, with no difference in generated code (like all of the RA patches). With these changes, isel is the slowest pass for PPC/X86, but linscan+live intervals is still > 50% of the compile time for itanium. More work could be done, but this is the last for now. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22993 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-23adjust to new live variables interfaceChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22992 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-23Adjust to new livevars interfaceChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22991 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-23Change live variables from using multimaps to using maps of vectors andChris Lattner
rearrange some of the accessors to be more efficient. This makes it much more efficient to iterate over all of the things with the same value. This speeds up liveintervals analysis from 8.63s to 3.79s with a release build of llc on kc++ with -march=ia64. This also speeds up live var from 1.66s -> 0.87s as well, reducing total llc time from 20.1s->15.2s. This also speeds up other targets slightly, e.g. llc time on X86 from 16.84 -> 16.45s, and PPC from 17.64->17.03s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22990 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-23Simplify this code by using higher-level LiveVariables methodsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22989 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-23Simplify this code by using LiveVariables::KillsRegisterChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22988 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-23Add RegisterDefIsDead to correspond to KillsRegister, mark both constChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22987 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-23Keep track of which registers are related to which other registers.Chris Lattner
Use this information to avoid doing expensive interval intersections for registers that could not possible be interesting. This speeds up linscan on ia64 compiling kc++ in release mode from taking 7.82s to 4.8s(!), total itanium llc time on this program is 27.3s now. This marginally speeds up PPC and X86, but they appear to be limited by other parts of linscan, not this code. On this program, on itanium, live intervals now takes 41% of llc time. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22986 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-23add a methodChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22985 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-23Fix PR618 and Regression/CodeGen/CBackend/2005-08-23-Fmod.ll by not emittingChris Lattner
x%y for 'rem' on fp values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22984 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-23New testcase for PR618Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22983 91177308-0d34-0410-b5e6-96231b3b80d8