aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2005-01-12Fix sign extend to long. When coming from sbyte, we used to generate:Chris Lattner
movsbl 4(%esp), %eax movl %eax, %edx sarl $7, %edx Now we generate: movsbl 4(%esp), %eax movl %eax, %edx sarl $31, %edx Which is right. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19515 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12Update comments to indicate CopyFrom/ToReg take physregs as well as vregs.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19514 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12Try both ways to fold an add together. This allows us to generate this codeChris Lattner
imul %EAX, %EAX, 400 add %ECX, %EAX add %ESI, DWORD PTR [%ECX + 4*%EDX] inc %EDX cmp %EDX, 100 instead of this: imul %EAX, %EAX, 400 add %ECX, %EAX mov %EAX, %EDX shl %EAX, 2 add %ECX, %EAX add %ESI, DWORD PTR [%ECX] inc %EDX cmp %EDX, 100 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19513 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12Shut up warnings with GCC 3.4.3 about uninitialized variables.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19512 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12Fix a major miscompilation where we were overwriting the scale reg.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19511 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12Do not use the type of the RHS constant to determine the type of the operation.Chris Lattner
This fails for shifts because the constant is always 8 bits. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19508 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12Do not lose the offset from teh global when peephole optimizing instructions.Chris Lattner
This fixes FreeBench/pcompress git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19507 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12Silence VC++ warnings.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19506 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12Add new file to Visual Studio CodeGen projectJeff Cohen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19505 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12Fix C++ more compilatiom errorsJeff Cohen
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19504 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12Fix a compile error with VC++, which things that static const arrays needChris Lattner
to be dynamically initialized. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19503 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12Fix a bug that caused us to crash on povray. We weren't emitting an ↵Chris Lattner
FP_REG_KILL into a block that had a successor with a FP PHI node. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19502 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12Print a load of a null pointer (in intel mode) like this:Chris Lattner
mov %AX, WORD PTR [0] instead of like this: mov %AX, WORD PTR [] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19501 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12Print a load of a null pointer like this:Chris Lattner
movw 0, %ax instead of like this: movw , %ax git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19500 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12Fix a crash compiling povray on UINT_TO_FP from i16.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19499 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12Add an option to view the selection dags as they are generated.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19498 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12Use and print out BuildStatus, we don't always have build errors.Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19497 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12There are no [mem] op= reg instructions for FP, so remove their entries.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19496 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12Fix a bug where we didn't insert FP_REG_KILL instructions into MBB's thatChris Lattner
contain FP PHI nodes but no other FP defining instructions. This fixes 183.equake git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19495 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12Fold TRUNCATE (LOAD P) into a smaller load from P.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19494 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12Be more careful about order of arg evalution for CopyToReg nodes. This shrinksChris Lattner
256.bzip2 from 7142 to 7103 lines of .s file. Second, add initial support for folding loads into compares, though this code is dynamically dead for now. :( git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19493 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-12Fold some more [mem] op= val operators. This allows us to things like thisChris Lattner
several times in 256.bzip2: mov %EAX, DWORD PTR [%ESP + 204] - mov %EAX, DWORD PTR [%EAX] - or %EAX, 2097152 - mov %ECX, DWORD PTR [%ESP + 204] - mov DWORD PTR [%ECX], %EAX + or DWORD PTR [%EAX], 2097152 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19492 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Fold loads into sign/zero extends. instead of:Chris Lattner
mov %AL, BYTE PTR [%EDX + l18_length_code] movzx %EAX, %AL Emit: movzx %EAX, BYTE PTR [%EDX + l18_length_code] git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19489 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Comment out debug code :)Chris Lattner
Select [mem] += Val operations. For constants, we used to get: mov %ECX, -32768 add %ECX, DWORD PTR [l4_match_start] mov DWORD PTR [l4_match_start], %ECX Now we get: add DWORD PTR [l4_match_start], -32768 For other values we used to get: mov %EBP, %EDI ;; because the add destroys the value add %EBP, DWORD PTR [l4_input_len] mov DWORD PTR [l4_input_len], %EBP now we get: add DWORD PTR [l4_input_len], %EDI Both of these use less registers than the alternative, are faster and smaller. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19488 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Handle the global address case here, not just the offset case.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19487 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Treat int constants as not requiring a register, since they are almost alwaysChris Lattner
folded into an instruction. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19486 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Print the value types in the nodes of the graphChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19485 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11add an assertion, avoid creating copyfromreg/copytoreg pairs that are theChris Lattner
same for PHI nodes. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19484 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11* Factor a bunch of binary operator cases into shared code.Chris Lattner
* Fold loads into Add, sub, and, or, xor and mul when possible. * Codegen shl X, 1 as add X, X git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19483 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Clear the whole array, always.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19482 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11No need to repeat the word `build' since it's under `Build status'Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19481 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Fold multiplies by 3,5,9 into addressing modes when possible.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19480 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11We don't always have build errors, so call it `status', not `error'Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19479 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Squelch optimized warning.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19475 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Fix the documentation for executeAndWait so the argument comments areReid Spencer
actually attributed to the arguments by doxygen. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19473 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Instead of generating stuff like this:Chris Lattner
mov %ECX, %EAX add %ECX, 32768 mov %SI, WORD PTR [2*%ECX + l13_prev] Generate this: mov %SI, WORD PTR [2*%ECX + l13_prev + 65536] This occurs when you have a GEP instruction where an index is "something + imm". git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19472 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Make the construction of doxygen documentation a repeatable processReid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19469 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Implement MEMCPY natively in terms of rep movs*Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19468 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Implement memset -> rep stos*Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19467 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Announce that we don't support mem ops yet.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19466 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Teach legalize to lower MEMSET/MEMCPY/MEMMOVE operations if the targetChris Lattner
does not support them. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19465 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Print new operations.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19464 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Turn memset/memcpy/memmove into the corresponding operations.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19463 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Add MEMSET/MEMCPY/MEMMOVE operations. Fix a really bad bug in the vectorChris Lattner
SDNode ctor. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19462 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11* Add the use of LOADABLE_MODULE=1 in the makefile exampleReid Spencer
* Change the names of the resulting module to Hello instead of libHello * Change lib/Debug -> Debug/lib per new makefile implementation. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19459 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11* Describe the LOADABLE_MODULE featureReid Spencer
* Get rid of non-compliant <font> elements (how did that get in there?) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19458 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Teach the address selector to make 'reg+reg' addressing modes.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19457 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Add the LOADABLE_MODULE=1 directive to indicate that this shared library isReid Spencer
intended to be a dlopenable module and not a "plain" shared library. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19456 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Emit NOT instructions.Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19455 91177308-0d34-0410-b5e6-96231b3b80d8
2005-01-11Implement the LOADABLE_MODULE option when building a shared library. ThisReid Spencer
passes the -module option on the libtool command line to ensure that the shared library being built can be dlopened and dlsym can work on that module. LOADABLE_MODULE should be sent only in conjunction with the SHARED_LIBRARY directive. It should generally be used for any module that is intended to be the target of an LLVM -load option. Note that loadable modules will not have the lib prefix but otherwise look like shared libraries. This is per the libtool recommendations and prevents these special shared libraries from being linked in via -l option to the linker. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@19454 91177308-0d34-0410-b5e6-96231b3b80d8