aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2004-06-12Reduce the number of columns in the alpha index to 4 so that it fitsReid Spencer
on a 1280x1024 screen! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14158 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11It is no longer 2001Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14157 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Don't trim @PrevDays (causing an error) if it isn't long enough.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14156 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Fix grammar: 's is for possessive only.Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14155 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Implement tracking of bytecode instruction size and the number of longReid Spencer
instructions generated. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14154 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Add two options to the program:Reid Spencer
-release causes ENABLE_OPTIMIZED=1 to be added to the make line so that the test runs against optimized code. -pedantic causes the CompileOptimizeOpts variable to be overridden to add several additional warnings not picked up by -Wall. This should help catch additional programming faux pas. See the diff for the specific details. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14153 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Fix fallout from getOffsetOfLocalArea() being negated. Debugging dumps were ↵Chris Lattner
being printed incorrectly, and we were reserving 8 extra bytes of stack space for functions on X86. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14152 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11llvm.isnan doesn't access memoryChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14151 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Constant fold the isnan intrinsicChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14150 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Add tests for isnanChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14149 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11By far, one of the most common uses of isnan is to make 'isunordered'Chris Lattner
comparisons. In an 'isunordered' predicate, which looks like this at the LLVM level: %a = call bool %llvm.isnan(double %X) %b = call bool %llvm.isnan(double %Y) %COM = or bool %a, %b We used to generate this code: fxch %ST(1) fucomip %ST(0), %ST(0) setp %AL fucomip %ST(0), %ST(0) setp %AH or %AL, %AH With this patch, we generate this code: fucomip %ST(0), %ST(1) fstp %ST(0) setp %AL Which should make alkis happy. Tested as X86/compare_folding.llx:test1 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14148 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Test that the X86 backend is only emitting one fucom instructionChris Lattner
for each 'COM =' line. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14147 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Fix bug in previous checkinChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14146 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11No really, these are dead nowChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14145 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Now that compare instructions aren't lumped in with the other twoargfp ↵Chris Lattner
instructions, we can get rid of the FpUCOM/FpUCOMi pseudo instructions, which makes stuff simpler and faster. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14144 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Introduce a new FP instruction type to separate the compare cases from theChris Lattner
twoarg cases. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14143 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Bug fixed, new featureChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14142 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Add direct support for the isnan intrinsic, implementing ↵Chris Lattner
test/Regression/CodeGen/X86/isnan.llx testcase git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14141 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Add support for the setp instructionsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14140 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Split compare instruction handling OUT of handleTwoArgFP into handleCompareFP.Chris Lattner
This makes the code much simpler, and the two cases really do belong apart. Once we do it, it's pretty obvious how flawed the logic was for A != A case, so I fixed it (fixing PR369). This also uses freeStackSlotAfter instead of inserting an fxchg then popStackAfter'ing in the case where there is a dead result (unlikely, but possible), producing better code. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14139 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Change tags rule to pipe output from find through etags command so that itReid Spencer
doesn't break on machines with limited command line lengths. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14138 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Revert an unneeded interface change to Instruction.hReid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14137 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Testcase for PR369Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14136 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Check to make sure that isnan doesn't require calling a functionChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14135 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Fix lowering to work correctlyChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14134 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11I misled Alkis: LLVM should have isnan, not isunordered.Chris Lattner
isunordered(X, Y) === isnan(X) | isnan(Y) Remove isunordered, add isnan. Modernize testcase git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14133 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11I misled Alkis: LLVM should have isnan, not isunordered.Chris Lattner
isunordered(X, Y) === isnan(X) | isnan(Y) Remove isunordered, add isnan. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14132 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Document the llvm.isnan intrinsicChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14131 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Bug fixed.Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14130 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Test case for PR368Brian Gaeke
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14129 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Turn loads of ConstantPointerNulls into loads of zero... don't spillBrian Gaeke
them into the constant pool. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14128 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Add the isunordered intrinsic.Alkis Evlogimenos
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14127 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-11Add feature test for llvm intrinsics. It currently contains only the ↵Alkis Evlogimenos
"isunordered" intrinsic git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14126 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10Updated the BytecodeAnalysis data structure to contain additional fieldsReid Spencer
needed for analysis of individual functions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14125 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10Added an isPhiNode(unsigned) static method to determine if an opcode isReid Spencer
a PhiNode or not. Needed by Bytecode Analyzer. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14124 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10Remove tabs.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14123 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10Implement detailed function level data collection and reporting.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14122 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10Adjust prototypes to new Handler interface.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14121 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10Make the parser deal with functions instead of just function types.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14120 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10Clean up documentation and naming of variables.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14119 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10Remove extra space.Misha Brukman
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14117 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10Doxygenize a comment.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14115 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10Made detailed output the default and changed -details option to -nodetails.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14114 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10Implemented the bulk of the functionality. Cleaned up the code.Reid Spencer
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14113 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10Allow dates with slashes in them in $DateRE.Brian Gaeke
Don't match on $Filename (which will be unset) if we hit 'UNMATCHABLE:'. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14112 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10Fix the prolog epilog code inserter to match the documentation and supportChris Lattner
targets whose stack grows up. Patch contributed by Vladimir Prus git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14111 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10Fix the fixed stack offset, patch contributed by Vladimir PrusChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14110 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10Fix a bug in my checkin from last night that caused miscompilations ofChris Lattner
186.crafty, fhourstones and 132.ijpeg. Bugpoint makes really nasty miscompilations embarassingly easy to find. It narrowed it down to the instcombiner and this testcase (from fhourstones): bool %l7153_l4706_htstat_loopentry_2E_4_no_exit_2E_4(int* %i, [32 x int]* %works, int* %tmp.98.out) { newFuncRoot: %tmp.96 = load int* %i ; <int> [#uses=1] %tmp.97 = getelementptr [32 x int]* %works, long 0, int %tmp.96 ; <int*> [#uses=1] %tmp.98 = load int* %tmp.97 ; <int> [#uses=2] %tmp.99 = load int* %i ; <int> [#uses=1] %tmp.100 = and int %tmp.99, 7 ; <int> [#uses=1] %tmp.101 = seteq int %tmp.100, 7 ; <bool> [#uses=2] %tmp.102 = cast bool %tmp.101 to int ; <int> [#uses=0] br bool %tmp.101, label %codeRepl4.exitStub, label %codeRepl3.exitStub codeRepl4.exitStub: ; preds = %newFuncRoot store int %tmp.98, int* %tmp.98.out ret bool true codeRepl3.exitStub: ; preds = %newFuncRoot store int %tmp.98, int* %tmp.98.out ret bool false } ... which only has one combination performed on it: $ llvm-as < t.ll | opt -instcombine -debug | llvm-dis IC: Old = %tmp.101 = seteq int %tmp.100, 7 ; <bool> [#uses=1] New = setne int %tmp.100, 0 ; <bool>:<badref> [#uses=0] IC: MOD = br bool %tmp.101, label %codeRepl3.exitStub, label %codeRepl4.exitStub IC: MOD = %tmp.97 = getelementptr [32 x int]* %works, uint 0, int %tmp.96 ; <int*> [#uses=1] It doesn't get much better than this. :) git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14109 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10More minor cleanupsChris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14108 91177308-0d34-0410-b5e6-96231b3b80d8
2004-06-10Eliminate many occurrances of Instruction::Chris Lattner
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@14107 91177308-0d34-0410-b5e6-96231b3b80d8