aboutsummaryrefslogtreecommitdiff
path: root/lib/Target
AgeCommit message (Collapse)Author
2002-10-13Don't mark JMPLCALL and JMPLRET as branches.Vikram S. Adve
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4132 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-13(1) Try to evaluate constant when multiplying 2 constants.Vikram S. Adve
(2) Use intelligent multiply selection code for array allocas. (3) Don't use cache padding for alloca'd stack slots! (4) Bug fix in handling call arguments: was not copying sixth FP arg to int reg. when calling a function with no prototype. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4130 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-13Eliminate duplicate target pointer in SparcRegInfo.Vikram S. Adve
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4129 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-13Eliminate duplicate target pointer. Also add a few assertions.Vikram S. Adve
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4128 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-13Make sure to handle small negative values hiding as large unsigned longs --Vikram S. Adve
this is a common case created by the front-end. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4127 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-13Major fix: extract ConstantExpr nodes and decompose them into symbolicVikram S. Adve
instructions so that (a) constant folding is done automatically before code generation, and (b) selection does not have to deal with them. Also, check for ConstantPointerRefs in additional to GlobalValues when creating a GEP to load a global address. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4126 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-11Instead of adding stdlib we just prototype malloc correctly.Nick Hildenbrandt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4118 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-11Sun requires you to include stdlib to use mallocNick Hildenbrandt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4117 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-11Major bug fix: spill code for an instruction in a delay slot wasVikram S. Adve
merrily being inserted before/after the instruction! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4116 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-05Bug fix: In preventing static global variables from being printed twice,Vikram S. Adve
I also prevented external globals from being printed twice, but they should (extern declaration and definition). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4043 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-03Add parens around constant calls to getelemptr to properly associate the ↵Nick Hildenbrandt
reference git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4032 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-02I was wrong on the removing of those references on the last commit.Nick Hildenbrandt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4023 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-02Removed unneeded reference and dereferences.Nick Hildenbrandt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4016 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-02Cleaned up my last check-in.Nick Hildenbrandt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4014 91177308-0d34-0410-b5e6-96231b3b80d8
2002-10-02No longer include malloc.h. If protoypes are needed for memory functions ↵Nick Hildenbrandt
they will be present in the byte code and the generated c as well. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@4013 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-30Fixed to properly escape quotes in strings.Nick Hildenbrandt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3991 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-29Bug fix in folding getElementPtr instructions: don't fold one intoVikram S. Adve
a predecessor if it has a non-zero first index and the predecessor ends with a struct index. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3982 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-28Added a couple of helper methods for live range construction.Vikram S. Adve
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3970 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-28Live ranges for Return value and return address of a Call are nowVikram S. Adve
created here, simply by handling all implicit operands (which should have been done anyway). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3969 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-28Fixed method getReturnValue(): it should return NULL if theVikram S. Adve
callee does not return a value. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3968 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-28Fixed incorrect assertion: spill code for function ptr should beVikram S. Adve
handled like normal operands, not like other call arguments. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3967 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-28Return address register should be marked as "result" for the JMPL instructionVikram S. Adve
since it is defined by the instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3966 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-28Live ranges for Return value and return address of a Call are no longerVikram S. Adve
created here. Instead they are created in LiveRangeInfo.cpp. This simplifies the code here quite a bit. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3965 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-28Simplified code that handles call args and rets, so it no longerVikram S. Adve
needs the RegClass list to be passed in. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3964 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-28Simplify Call translation slightly.Vikram S. Adve
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3963 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-27Overhaul integer conversions to match C++ ISO standard.Vikram S. Adve
Don't allow direct FP-to-uint conversion (must be eliminated by preselection). Address arithmetic for arrays is now entirely 64-bit so no sign-ext needed. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3961 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-27Modify operand order for Create{Sign,Zero}ExtensionInstructions.Vikram S. Adve
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3960 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-27Bug fix: some redundant copies were not being deleted after detection :-|.Vikram S. Adve
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3959 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-27Sign-extend integer constants from original type size to 64 bits!Vikram S. Adve
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3958 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-27Decompose FP-to-UInt casts into FP-to-ULong-toUInt.Vikram S. Adve
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3957 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-25Convert TargetData to be an ImmutablePassChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3927 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-25Strings now handled correctly.Nick Hildenbrandt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3920 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-23Parenthesis are now added to casts of type array.Nick Hildenbrandt
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3892 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-23Put intermediate source files in a subdirectory here instead of withVikram S. Adve
object files. Also, git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3884 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-23Disable reassociation pass in LLC until it is fixed.Vikram S. Adve
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3883 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-21Changed codegen to add 2 empty slots at the top of stack using StackSlots passAnand Shukla
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3873 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-21Initial version: it adds 2 empty slots at the top of stackAnand Shukla
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3872 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20Fix cwriter to not output FP constants in ascii, output them in hex instead.Chris Lattner
This fixes a number of FP precision problems, making the output of the power benchmark closer to the right answer. Unfortunately, this only addresses FP constants used directly in functions. Constants referred to by global constants (such as an array of FP values) aren't helped by this. Until this happens power won't work. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3871 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20Fix bug: 2002-09-20-VarArgPrototypes.llChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3870 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20Fix output of typedefs to avoid syntax errors.Chris Lattner
* We now can correctly Cify the Olden-power benchmark git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3860 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20* Add a couple of comments to the output c codeChris Lattner
* _FIX_ infinite recursion problem, due to typedefs of a structure being printed before the structure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3859 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20Another change that doesn't affect functionality. Since we are only lookingChris Lattner
at types in the symbol table, only traverse the type plane, saving a loop nest. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3858 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20Make the StructPrinted set only take memory when it's being used.Chris Lattner
rename parseStruct to printContainedStructs git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3857 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20No functionality changes, primarily just changing tab indentation to spaceChris Lattner
indentation git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3856 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20Add method IGNode::getCombinedDegree to count the sum of the degreesVikram S. Adve
of two nodes, excluding duplicates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3848 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20Add peephole optimization pass at the end of code generation.Vikram S. Adve
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3846 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20Added class MachineOptInfo as interface to target-specificVikram S. Adve
routines supporting machine code optimization. Also added method MachineInstrInfo::getNOPOpCode(). git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3845 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20Allow copy coalescing in more cases: if sum of node degrees is more thanVikram S. Adve
than #available regs, compute the sum excluding duplicates and if that is less than #regs, go ahead and coalesce. Add method IGNode::getCombinedDegree to count excluding duplicates. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3842 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20Peephole optimization pass on final machine code.Vikram S. Adve
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3840 91177308-0d34-0410-b5e6-96231b3b80d8
2002-09-20Moving these files from Code/PreSelection to here.Vikram S. Adve
Original logs for PreSelection.cpp: revision 1.2 date: 2002/09/17 23:50:32; author: lattner; state: Exp; lines: +1 -3 Don't put default parameter values into .cpp files, it breaks 3.x compilers revision 1.1 date: 2002/09/16 15:31:13; author: vadve; state: Exp; New preselection pass that specializes LLVM code for a target machine, while remaining in legal portable LLVM form and preserving type information and type safety. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@3838 91177308-0d34-0410-b5e6-96231b3b80d8