X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=include%2Fllvm%2FCodeGen%2FIntrinsicLowering.h;h=5a3fb4b1a3dfb18275b1b2ee37ac9c2504b70f33;hb=412cd2f81374865dfa708bef6d5b896ca10dece0;hp=c28083a59f3fe09be7ea7551071dfb633563683e;hpb=6279cd85e9e59c93d43877bf2cf7d116e51ce021;p=oota-llvm.git diff --git a/include/llvm/CodeGen/IntrinsicLowering.h b/include/llvm/CodeGen/IntrinsicLowering.h index c28083a59f3..5a3fb4b1a3d 100644 --- a/include/llvm/CodeGen/IntrinsicLowering.h +++ b/include/llvm/CodeGen/IntrinsicLowering.h @@ -21,49 +21,16 @@ namespace llvm { class CallInst; class Module; - class TargetData; + class DataLayout; class IntrinsicLowering { - const TargetData& TD; - - Constant *SetjmpFCache; - Constant *LongjmpFCache; - Constant *AbortFCache; - Constant *MemcpyFCache; - Constant *MemmoveFCache; - Constant *MemsetFCache; - Constant *sqrtFCache; - Constant *sqrtDCache; - Constant *sqrtLDCache; - Constant *logFCache; - Constant *logDCache; - Constant *logLDCache; - Constant *log2FCache; - Constant *log2DCache; - Constant *log2LDCache; - Constant *log10FCache; - Constant *log10DCache; - Constant *log10LDCache; - Constant *expFCache; - Constant *expDCache; - Constant *expLDCache; - Constant *exp2FCache; - Constant *exp2DCache; - Constant *exp2LDCache; - Constant *powFCache; - Constant *powDCache; - Constant *powLDCache; + const DataLayout& TD; + bool Warned; public: - explicit IntrinsicLowering(const TargetData &td) : - TD(td), SetjmpFCache(0), LongjmpFCache(0), AbortFCache(0), - MemcpyFCache(0), MemmoveFCache(0), MemsetFCache(0), sqrtFCache(0), - sqrtDCache(0), sqrtLDCache(0), logFCache(0), logDCache(0), logLDCache(0), - log2FCache(0), log2DCache(0), log2LDCache(0), log10FCache(0), - log10DCache(0), log10LDCache(0), expFCache(0), expDCache(0), - expLDCache(0), exp2FCache(0), exp2DCache(0), exp2LDCache(0), powFCache(0), - powDCache(0), powLDCache(0), Warned(false) {} + explicit IntrinsicLowering(const DataLayout &td) : + TD(td), Warned(false) {} /// AddPrototypes - This method, if called, causes all of the prototypes /// that might be needed by an intrinsic lowering implementation to be @@ -81,6 +48,11 @@ namespace llvm { /// be capable of handling this kind of change. /// void LowerIntrinsicCall(CallInst *CI); + + /// LowerToByteSwap - Replace a call instruction into a call to bswap + /// intrinsic. Return false if it has determined the call is not a + /// simple integer bswap. + static bool LowerToByteSwap(CallInst *CI); }; }