mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-07-23 14:25:07 +00:00
Thread LLVMContext through the constant folding APIs, which touches a lot of files.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74844 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -25,21 +25,24 @@
|
||||
namespace llvm {
|
||||
|
||||
class TargetData;
|
||||
class LLVMContext;
|
||||
|
||||
/// TargetFolder - Create constants with target dependent folding.
|
||||
class TargetFolder {
|
||||
const TargetData *TD;
|
||||
LLVMContext* Context;
|
||||
|
||||
/// Fold - Fold the constant using target specific information.
|
||||
Constant *Fold(Constant *C) const {
|
||||
if (ConstantExpr *CE = dyn_cast<ConstantExpr>(C))
|
||||
if (Constant *CF = ConstantFoldConstantExpression(CE, TD))
|
||||
if (Constant *CF = ConstantFoldConstantExpression(CE, Context, TD))
|
||||
return CF;
|
||||
return C;
|
||||
}
|
||||
|
||||
public:
|
||||
explicit TargetFolder(const TargetData *TheTD) : TD(TheTD) {}
|
||||
explicit TargetFolder(const TargetData *TheTD, LLVMContext* C) :
|
||||
TD(TheTD), Context(C) {}
|
||||
|
||||
//===--------------------------------------------------------------------===//
|
||||
// Binary Operators
|
||||
|
Reference in New Issue
Block a user