| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | Print new node. | Chris Lattner | 2005-01-13 | 1 | -0/+1 | |
| | | | | | llvm-svn: 19526 | |||||
| * | Add a new node type, add comments. | Chris Lattner | 2005-01-13 | 2 | -4/+13 | |
| | | | | | llvm-svn: 19525 | |||||
| * | Turn on LOADABLE_MODULE so that profile.so can be loaded dynamically by | Reid Spencer | 2005-01-13 | 1 | -0/+1 | |
| | | | | | | | the JIT. llvm-svn: 19524 | |||||
| * | Re-enable libprofile now that llvm-ar is working better. | Reid Spencer | 2005-01-13 | 1 | -1/+1 | |
| | | | | | llvm-svn: 19523 | |||||
| * | Add some really pedantic assertions to the load folding code. Fix a bunch | Chris Lattner | 2005-01-13 | 1 | -35/+43 | |
| | | | | | | | | of cases where we accidentally emitted a load folded once and unfolded elsewhere. llvm-svn: 19522 | |||||
| * | Do not fold (zero_ext (sign_ext V)) -> (sign_ext V), they are not the same. | Chris Lattner | 2005-01-12 | 1 | -2/+2 | |
| | | | | | | | This fixes llvm-test/SingleSource/Regression/C/casts.c llvm-svn: 19519 | |||||
| * | We can only fold a load into an op if there is exactly one use of the value. | Chris Lattner | 2005-01-12 | 1 | -1/+2 | |
| | | | | | | | | Checking to see if the load has two uses is not equivalent, as the chain value may have zero uses. llvm-svn: 19518 | |||||
| * | New method | Chris Lattner | 2005-01-12 | 1 | -0/+33 | |
| | | | | | llvm-svn: 19517 | |||||
| * | New method. | Chris Lattner | 2005-01-12 | 1 | -0/+5 | |
| | | | | | llvm-svn: 19516 | |||||
| * | Fix sign extend to long. When coming from sbyte, we used to generate: | Chris Lattner | 2005-01-12 | 1 | -2/+2 | |
| | | | | | | | | | | | | | | | | | 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. llvm-svn: 19515 | |||||
| * | Update comments to indicate CopyFrom/ToReg take physregs as well as vregs. | Chris Lattner | 2005-01-12 | 2 | -7/+7 | |
| | | | | | llvm-svn: 19514 | |||||
| * | Try both ways to fold an add together. This allows us to generate this code | Chris Lattner | 2005-01-12 | 1 | -0/+4 | |
| | | | | | | | | | | | | | | | | | | | | | | 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 llvm-svn: 19513 | |||||
| * | Shut up warnings with GCC 3.4.3 about uninitialized variables. | Reid Spencer | 2005-01-12 | 1 | -2/+1 | |
| | | | | | llvm-svn: 19512 | |||||
| * | Fix a major miscompilation where we were overwriting the scale reg. | Chris Lattner | 2005-01-12 | 1 | -1/+1 | |
| | | | | | llvm-svn: 19511 | |||||
| * | Do not use the type of the RHS constant to determine the type of the operation. | Chris Lattner | 2005-01-12 | 1 | -1/+1 | |
| | | | | | | | This fails for shifts because the constant is always 8 bits. llvm-svn: 19508 | |||||
| * | Do not lose the offset from teh global when peephole optimizing instructions. | Chris Lattner | 2005-01-12 | 1 | -1/+3 | |
| | | | | | | | This fixes FreeBench/pcompress llvm-svn: 19507 | |||||
| * | Silence VC++ warnings. | Chris Lattner | 2005-01-12 | 4 | -17/+22 | |
| | | | | | llvm-svn: 19506 | |||||
| * | Add new file to Visual Studio CodeGen project | Jeff Cohen | 2005-01-12 | 1 | -0/+3 | |
| | | | | | llvm-svn: 19505 | |||||
| * | Fix C++ more compilatiom errors | Jeff Cohen | 2005-01-12 | 1 | -0/+1 | |
| | | | | | llvm-svn: 19504 | |||||
| * | Fix a compile error with VC++, which things that static const arrays need | Chris Lattner | 2005-01-12 | 1 | -2/+2 | |
| | | | | | | | to be dynamically initialized. :( llvm-svn: 19503 | |||||
| * | Fix a bug that caused us to crash on povray. We weren't emitting an ↵ | Chris Lattner | 2005-01-12 | 1 | -49/+69 | |
| | | | | | | | FP_REG_KILL into a block that had a successor with a FP PHI node. llvm-svn: 19502 | |||||
| * | Print a load of a null pointer (in intel mode) like this: | Chris Lattner | 2005-01-12 | 1 | -1/+1 | |
| | | | | | | | | | | | mov %AX, WORD PTR [0] instead of like this: mov %AX, WORD PTR [] llvm-svn: 19501 | |||||
| * | Print a load of a null pointer like this: | Chris Lattner | 2005-01-12 | 1 | -1/+1 | |
| | | | | | | | | | | | movw 0, %ax instead of like this: movw , %ax llvm-svn: 19500 | |||||
| * | Fix a crash compiling povray on UINT_TO_FP from i16. | Chris Lattner | 2005-01-12 | 1 | -3/+1 | |
| | | | | | llvm-svn: 19499 | |||||
| * | Add an option to view the selection dags as they are generated. | Chris Lattner | 2005-01-12 | 1 | -0/+11 | |
| | | | | | llvm-svn: 19498 | |||||
| * | Use and print out BuildStatus, we don't always have build errors. | Misha Brukman | 2005-01-12 | 2 | -5/+6 | |
| | | | | | llvm-svn: 19497 | |||||
| * | There are no [mem] op= reg instructions for FP, so remove their entries. | Chris Lattner | 2005-01-12 | 1 | -12/+11 | |
| | | | | | llvm-svn: 19496 | |||||
| * | Fix a bug where we didn't insert FP_REG_KILL instructions into MBB's that | Chris Lattner | 2005-01-12 | 1 | -0/+15 | |
| | | | | | | | | contain FP PHI nodes but no other FP defining instructions. This fixes 183.equake llvm-svn: 19495 | |||||
| * | Fold TRUNCATE (LOAD P) into a smaller load from P. | Chris Lattner | 2005-01-12 | 1 | -0/+15 | |
| | | | | | llvm-svn: 19494 | |||||
| * | Be more careful about order of arg evalution for CopyToReg nodes. This shrinks | Chris Lattner | 2005-01-12 | 1 | -2/+47 | |
| | | | | | | | | | | 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. :( llvm-svn: 19493 | |||||
| * | Fold some more [mem] op= val operators. This allows us to things like this | Chris Lattner | 2005-01-12 | 1 | -2/+39 | |
| | | | | | | | | | | | | | | 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 llvm-svn: 19492 | |||||
| * | Fold loads into sign/zero extends. instead of: | Chris Lattner | 2005-01-11 | 1 | -2/+25 | |
| | | | | | | | | | | | | mov %AL, BYTE PTR [%EDX + l18_length_code] movzx %EAX, %AL Emit: movzx %EAX, BYTE PTR [%EDX + l18_length_code] llvm-svn: 19489 | |||||
| * | Comment out debug code :) | Chris Lattner | 2005-01-11 | 1 | -2/+84 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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. llvm-svn: 19488 | |||||
| * | Handle the global address case here, not just the offset case. | Chris Lattner | 2005-01-11 | 1 | -4/+11 | |
| | | | | | llvm-svn: 19487 | |||||
| * | Treat int constants as not requiring a register, since they are almost always | Chris Lattner | 2005-01-11 | 1 | -14/+22 | |
| | | | | | | | folded into an instruction. llvm-svn: 19486 | |||||
| * | Print the value types in the nodes of the graph | Chris Lattner | 2005-01-11 | 1 | -0/+19 | |
| | | | | | llvm-svn: 19485 | |||||
| * | add an assertion, avoid creating copyfromreg/copytoreg pairs that are the | Chris Lattner | 2005-01-11 | 1 | -2/+5 | |
| | | | | | | | same for PHI nodes. llvm-svn: 19484 | |||||
| * | * Factor a bunch of binary operator cases into shared code. | Chris Lattner | 2005-01-11 | 1 | -192/+241 | |
| | | | | | | | | * Fold loads into Add, sub, and, or, xor and mul when possible. * Codegen shl X, 1 as add X, X llvm-svn: 19483 | |||||
| * | Clear the whole array, always. | Chris Lattner | 2005-01-11 | 1 | -1/+1 | |
| | | | | | llvm-svn: 19482 | |||||
| * | No need to repeat the word `build' since it's under `Build status' | Misha Brukman | 2005-01-11 | 1 | -1/+1 | |
| | | | | | llvm-svn: 19481 | |||||
| * | Fold multiplies by 3,5,9 into addressing modes when possible. | Chris Lattner | 2005-01-11 | 1 | -0/+28 | |
| | | | | | llvm-svn: 19480 | |||||
| * | We don't always have build errors, so call it `status', not `error' | Misha Brukman | 2005-01-11 | 1 | -1/+1 | |
| | | | | | llvm-svn: 19479 | |||||
| * | Squelch optimized warning. | Chris Lattner | 2005-01-11 | 1 | -0/+1 | |
| | | | | | llvm-svn: 19475 | |||||
| * | Fix the documentation for executeAndWait so the argument comments are | Reid Spencer | 2005-01-11 | 1 | -19/+16 | |
| | | | | | | | actually attributed to the arguments by doxygen. llvm-svn: 19473 | |||||
| * | Instead of generating stuff like this: | Chris Lattner | 2005-01-11 | 1 | -1/+14 | |
| | | | | | | | | | | | | | | | | 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". llvm-svn: 19472 | |||||
| * | Make the construction of doxygen documentation a repeatable process | Reid Spencer | 2005-01-11 | 1 | -1/+5 | |
| | | | | | llvm-svn: 19469 | |||||
| * | Implement MEMCPY natively in terms of rep movs* | Chris Lattner | 2005-01-11 | 1 | -1/+45 | |
| | | | | | llvm-svn: 19468 | |||||
| * | Implement memset -> rep stos* | Chris Lattner | 2005-01-11 | 1 | -3/+64 | |
| | | | | | llvm-svn: 19467 | |||||
| * | Announce that we don't support mem ops yet. | Chris Lattner | 2005-01-11 | 1 | -1/+5 | |
| | | | | | llvm-svn: 19466 | |||||
| * | Teach legalize to lower MEMSET/MEMCPY/MEMMOVE operations if the target | Chris Lattner | 2005-01-11 | 1 | -7/+52 | |
| | | | | | | | does not support them. llvm-svn: 19465 | |||||

