aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/CBackend/Writer.cpp
AgeCommit message (Collapse)Author
2004-11-30Sparcs behave better if we use <alloca.h> and avoid messing with ↵Brian Gaeke
__builtin_alloca. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18397 91177308-0d34-0410-b5e6-96231b3b80d8
2004-11-13Hack around stupidity in GCC, fixing Burg with the CBE andChris Lattner
CBackend/2004-11-13-FunctionPointerCast.llx git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17710 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-25Removed dead method, printPHICopiesForSuccessors().John Criswell
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17216 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-25Modified switch generation so that only the phi values associated with theJohn Criswell
destination basic block are copied. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17212 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-20Small performance improvement in generated C code:John Criswell
Instead of unconditionally copying all phi node values into temporaries for all successor blocks, generate code that will determine what successor block will be called and then copy only those phi node values needed by the successor block. This seems to cut down namd execution time from being 8% higher than GCC to 4% higher than GCC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17144 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-17Print a semicolon for the unreacahble instruction. This fixes problemsChris Lattner
where C requires semicolons in some cases to indicate null statements. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17107 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-17The first hunk corrects a bug when printing undef null values. We would printChris Lattner
0->field, which is illegal. Now we print ((foo*)0)->field. The second hunk is an optimization to not print undefined phi values. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17094 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-16Add support for unreachable and undefChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@17048 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-11Fix a warning that is emitted on the sunsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16917 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-06Really fix FreeBSD, which apparently doesn't tolerate the extern.Chris Lattner
Thanks to Jeff Cohen for pointing out my goof. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16762 91177308-0d34-0410-b5e6-96231b3b80d8
2004-10-06FreeBSD uses GCC. Patch contributed by Jeff Cohen!Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16756 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-28Pull assignment out of for loop conditional in order for this toAlkis Evlogimenos
compile under windows. Patch contributed by Paolo Invernizzi! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16534 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-20'Pass' should now not be derived from by clients. Instead, they should deriveChris Lattner
from ModulePass. Instead of implementing Pass::run, then should implement ModulePass::runOnModule. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16436 91177308-0d34-0410-b5e6-96231b3b80d8
2004-09-01Changes For Bug 352Reid Spencer
Move include/Config and include/Support into include/llvm/Config, include/llvm/ADT and include/llvm/Support. From here on out, all LLVM public header files must be under include/llvm/. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16137 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-25Previous checkin broke printf(%a) support for fp constants-- re-fix it.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16051 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-25New version of Bill Wendling's PR33 patch.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@16050 91177308-0d34-0410-b5e6-96231b3b80d8
2004-08-10Paper over CBackend/2004-08-09-va-end-null.llChris Lattner
Note that this indicates a serious problem with the way we are emitting varargs, but this should not be properly fixed until after 1.3. This patch SHOULD go into 1.3. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15602 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-25Temporarily disable this code, as it is emitting LLVM_NAN("nan") which ↵Chris Lattner
results in a call to the glibc 'nan' function because the initializer is not a string. This breaks when used in a global initializer. Try compiling this testcase for example: %X = global float <some nan value> git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15223 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-21Emit NaNs and INFs bit-identically to the bytecode file, if the system hasBrian Gaeke
printf("%a") support. Patch contributed by Bill Wendling. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15056 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-18bug 122:Reid Spencer
- Replace ConstantPointerRef usage with GlobalValue usage git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14953 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-15Patches towards fixing PR341Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14841 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-12Apple's MacOS X is another OS which does not provide alloca() via <alloca.h>Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14781 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-11Delete the allocate*TargetMachine function, which is now dead .Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14755 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-11Make these format a bit nicerChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14747 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-11Auto-registrate targetChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14745 91177308-0d34-0410-b5e6-96231b3b80d8
2004-07-04Add #include <iostream> since Value.h does not #include it any more.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14622 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-20Move the IntrinsicLowering header into the CodeGen directory, as per PR346Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14266 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-17Rename Type::PrimitiveID to TypeId and ::getPrimitiveID() to ::getTypeID()Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14201 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-02<alloca.h> on cygwin pulls in a ton of stuff (macros and function protos)Chris Lattner
that we REALLY don't want in the CBE code. With this fix, the CBE passes all of the MultiSource tests on cygwin that it does on linux. Yaay! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13975 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-28Fix the big regression that has been killing the nightly tester these lastChris Lattner
few days. Apparently the old symbol table used to auto rename collisions in the type symbol table and the new one does not. It doesn't really make sense for the new one to do so, so we just make the client do it. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13877 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-28Minor changes. Switch to a SymbolTable remove that does not take linear timeChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13874 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-26Fix PR344: the incorrect remove was being used.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13790 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-25Convert to SymbolTable's new iteration interface.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13754 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-23Add support for accurate garbage collection to the LLVM code generatorsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13696 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-20Fix to make the CBE always emit comparisons inline. Hopefully this willChris Lattner
fix the really bad code we're getting on PPC. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13609 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-09syntactically loopify natural loops so that the GCC loop optimizer can find ↵Chris Lattner
them. This should *dramatically* improve the performance of CBE compiled code on targets that depend on GCC's loop optimizations (like PPC) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13438 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-09Do not emit prototypes for setjmp/longjmp, as they are handled speciallyChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13437 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-09Make the floating point constant pools local to each function, split theChris Lattner
FindUsedTypes manipulation stuff out to be a seperate pass, and make the main CWriter be a function pass now! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13435 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-09Get this looking more like a function pass.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13433 91177308-0d34-0410-b5e6-96231b3b80d8
2004-05-09Print all PHI copies for successor blocks before the terminator, whether it ↵Chris Lattner
be a conditional branch or switch. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13430 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-27Changes to fix up the inst_iterator to pass to boost iterator checks. ThisChris Lattner
patch was graciously contributed by Vladimir Prus. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@13185 91177308-0d34-0410-b5e6-96231b3b80d8
2004-04-01Add support for select constant expressions to the CBE, fixing SIODChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12589 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-13Rename the intrinsic enum values for llvm.va_* from Intrinsic::va_* toChris Lattner
Intrinsic::va*. This avoid conflicting with macros in the stdlib.h file. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12356 91177308-0d34-0410-b5e6-96231b3b80d8
2004-03-12ADd support for select instructionsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@12316 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-26Fixes for PR258 and PR259.John Criswell
Functions with linkonce linkage are declared with weak linkage. Global floating point constants used to represent unprintable values (such as NaN and infinity) are declared static so that they don't interfere with other CBE generated translation units. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11884 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-24Fix some unexpected fallout from the config.h changes. Because the CBE noChris Lattner
longer was getting this #include, it always fell back on the less precise floating point initializer values, causing some testsuite failures. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11803 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-20It is totally unacceptable to print out (literally) millions of zeros whenChris Lattner
compiling 129.compress... so don't! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11649 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-15Now that the lowerinvoke pass inserts calls to llvm.setjmp/llvm.longjmp, someChris Lattner
hacks can be banished. Also, this gives us the opportunity to emit special code for the setjmp/longjmps which alows the elimination of one GCC warning for every setjmp/longjmp site (which is often THOUSANDS in C++ programs). Yaay! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11484 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-15Add support for the new ConstantAggregateZero classChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11473 91177308-0d34-0410-b5e6-96231b3b80d8
2004-02-14Add support for the returnaddress and frameaddress intrinsicsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@11433 91177308-0d34-0410-b5e6-96231b3b80d8