- Apr 10, 2004
-
-
Chris Lattner authored
llvm-svn: 12810
-
Chris Lattner authored
llvm-svn: 12809
-
Chris Lattner authored
don't write to memory llvm-svn: 12808
-
Chris Lattner authored
call and invoke instructions that are known to not write to memory. llvm-svn: 12807
-
Chris Lattner authored
llvm-svn: 12806
-
Chris Lattner authored
llvm-svn: 12805
-
Chris Lattner authored
llvm-svn: 12804
-
Chris Lattner authored
llvm-svn: 12803
-
Chris Lattner authored
llvm-svn: 12802
-
Chris Lattner authored
eliminating the shifts llvm-svn: 12801
-
Chris Lattner authored
This transforms code like this: %C = or %A, %B %D = select %cond, %C, %A into: %C = select %cond, %B, 0 %D = or %A, %C Since B is often a constant, the select can often be eliminated. In any case, this reduces the usage count of A, allowing subsequent optimizations to happen. This xform applies when the operator is any of: add, sub, mul, or, xor, and, shl, shr llvm-svn: 12800
-
Chris Lattner authored
llvm-svn: 12799
-
Chris Lattner authored
if (C) V1 |= V2; into: Vx = V1 | V2; V1 = select C, V1, Vx when the expression can be evaluated unconditionally and is *cheap* to execute. This limited form of if conversion is quite handy in lots of cases. For example, it turns this testcase into straight-line code: int in0 ; int in1 ; int in2 ; int in3 ; int in4 ; int in5 ; int in6 ; int in7 ; int in8 ; int in9 ; int in10; int in11; int in12; int in13; int in14; int in15; long output; void mux(void) { output = (in0 ? 0x00000001 : 0) | (in1 ? 0x00000002 : 0) | (in2 ? 0x00000004 : 0) | (in3 ? 0x00000008 : 0) | (in4 ? 0x00000010 : 0) | (in5 ? 0x00000020 : 0) | (in6 ? 0x00000040 : 0) | (in7 ? 0x00000080 : 0) | (in8 ? 0x00000100 : 0) | (in9 ? 0x00000200 : 0) | (in10 ? 0x00000400 : 0) | (in11 ? 0x00000800 : 0) | (in12 ? 0x00001000 : 0) | (in13 ? 0x00002000 : 0) | (in14 ? 0x00004000 : 0) | (in15 ? 0x00008000 : 0) ; } llvm-svn: 12798
-
Chris Lattner authored
llvm-svn: 12797
-
- Apr 09, 2004
-
-
Chris Lattner authored
llvm-svn: 12796
-
John Criswell authored
is listed first and the address is listed second. llvm-svn: 12795
-
Chris Lattner authored
that have a constant operand. This implements add.ll:test19, shift.ll:test15*, and others that are not tested llvm-svn: 12794
-
Chris Lattner authored
llvm-svn: 12793
-
Chris Lattner authored
llvm-svn: 12792
-
Alkis Evlogimenos authored
llvm-svn: 12791
-
John Criswell authored
llvm-svn: 12790
-
John Criswell authored
so that they do not specify specific integer sizes (as those are constrained by the code generator, not the intrinsic itself). Also put these intrinsics into their own "Operating System" section. llvm-svn: 12789
-
John Criswell authored
llvm-svn: 12788
-
John Criswell authored
llvm-svn: 12787
-
John Criswell authored
InstSelectSimple.cpp: Change the checks for proper I/O port address size into an exit() instead of an assertion. Assertions aren't used in Release builds, and handling this error should be graceful (not that this counts as graceful, but it's more graceful). Modified the generation of the IN/OUT instructions to have 0 arguments. X86InstrInfo.td: Added the OpSize attribute to the 16 bit IN and OUT instructions. llvm-svn: 12786
-
- Apr 08, 2004
-
-
Chris Lattner authored
llvm-svn: 12784
-
Chris Lattner authored
llvm-svn: 12783
-
John Criswell authored
I/O port instructions on x86. The specific code sequence is tailored to the parameters and return value of the intrinsic call. Added the ability for implicit defintions to be printed in the Instruction Printer. Added the ability for RawFrm instruction to print implict uses and defintions with correct comma output. This required adjustment to some methods so that a leading comma would or would not be printed. llvm-svn: 12782
-
John Criswell authored
The Verifier ensures that their parameters are of integral types and have the correct sign, but it does not enforce any size restrictions because such restrictions are platform dependent. llvm-svn: 12781
-
John Criswell authored
llvm-svn: 12780
-
Chris Lattner authored
llvm-svn: 12779
-
Chris Lattner authored
llvm-svn: 12778
-
Brian Gaeke authored
llvm-svn: 12777
-
Chris Lattner authored
generate is not TBAA safe. llvm-svn: 12774
-
Chris Lattner authored
llvm-svn: 12773
-
Chris Lattner authored
aliasing in the C compiler. llvm-svn: 12772
-
Chris Lattner authored
Now we collect all of the call sites we are interested in inlining, then inline them. This entirely avoids issues with trying to inline a call site we got by inlining another call site. This also eliminates iterator invalidation issues. llvm-svn: 12770
-
Chris Lattner authored
llvm-svn: 12769
-
Chris Lattner authored
llvm-svn: 12768
-
- Apr 07, 2004
-
-
Brian Gaeke authored
llvm-svn: 12767
-