aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
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
2005-08-23add a noteChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22982 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-23Ack, typoNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22981 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-23Add an option to make SetCC illegal as a beta optionNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22979 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-23Teach the SelectionDAG how to transform select_cc eq, X, 0, 1, 0 intoNate Begeman
either seteq X, 0 or srl (ctlz X), size(X-1), depending on what's legal for the target. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22978 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-23Teach Legalize how to turn setcc into select_ccNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22977 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-23Remove some instructions we no longer generateNate Begeman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22976 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-22Remove some regs that are not used.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22975 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-22Nate noticed that 30% of the malloc/frees in llc come from calls to ↵Chris Lattner
LowercaseString in the asmprinter. This changes the .td files to use lower case register names, avoiding the need to do this call. This speeds up the asmprinter from 1.52s to 1.06s on kc++ in a release build. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22974 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-22Fix a crash I introduced into the IA64 backend with my copyfromreg change.Chris Lattner
It used to crash on any function that took float arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22973 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-22Try to avoid scanning the fixed list. On architectures with a non-stupidChris Lattner
number of regs (e.g. most riscs), many functions won't need to use callee clobbered registers. Do a speculative check to see if we can get a free register without processing the fixed list (which has all of these). This saves a lot of time on machines with lots of callee clobbered regs (e.g. ppc and itanium, also x86). This reduces ppc llc compile time from 184s -> 172s on kc++. This is probably worth FAR FAR more on itanium though. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22972 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-22Move some code in the register assignment case that only needs to happen ifChris Lattner
we spill out of the fast path. The scan of active_ and the calls to updateSpillWeights don't need to happen unless a spill occurs. This reduces debug llc time of kc++ with ppc from 187.3s to 183.2s. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22971 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-22Add a pass name for -time-passes outputChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22970 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-22Fix a problem where constant expr shifts would not have their shift amountChris Lattner
promoted to the right type. This fixes: IA64/2005-08-22-LegalizerCrash.ll git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22969 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-22Testcase for a crash in the legalizer on ia64. This is reduced from kc++.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22968 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-22Add a long-overdue itanium regression test dir: hint hint Duraid :)Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22967 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-22Speed up this loop a bit, based on some observations that Nate made, andChris Lattner
add some comments. This loop really needs to be reevaluated! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22966 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-22Revert my patch which changed the code to not work.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22965 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-22Make the example a bit easier to understand, suggested by Jim.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22964 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-22Implement stores.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22963 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-22Add a fast-path for register values. Add support for constant pool entries,Chris Lattner
allowing us to compile this: float %test2(float* %P) { %Q = load float* %P %R = add float %Q, 10.1 ret float %R } to this: _test2: lfs r2, 0(r3) lis r3, ha16(.CPI_test2_0) lfs r3, lo16(.CPI_test2_0)(r3) fadds f1, r2, r3 blr git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22962 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-22Fix compilation of:Chris Lattner
float %test2(float* %P) { %Q = load float* %P %R = add float %Q, %Q ret float %R } By returning the right result. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22961 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-22Make sure expressions only have one use before emitting them into a place ↵Chris Lattner
that is conditionally executed git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22960 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-21Implement most of load support. There is still a bug though.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22959 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-21add a methodChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22958 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-21add anew methodChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22957 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-21Add support for frame index nodesChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22956 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-21add a methodChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22955 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-21ADd a methodChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22954 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-21Don't print out the MBB label for the entry mbbChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22953 91177308-0d34-0410-b5e6-96231b3b80d8