LLVM API Documentation
#include "llvm/MC/MCExpr.h"
#include "llvm/ADT/Statistic.h"
#include "llvm/ADT/StringSwitch.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCAsmLayout.h"
#include "llvm/MC/MCAssembler.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCObjectWriter.h"
#include "llvm/MC/MCSymbol.h"
#include "llvm/MC/MCValue.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/raw_ostream.h"
Go to the source code of this file.
Namespaces | |
namespace | stats |
Defines | |
#define | DEBUG_TYPE "mcexpr" |
Functions | |
static void | AttemptToFoldSymbolOffsetDifference (const MCAssembler *Asm, const MCAsmLayout *Layout, const SectionAddrMap *Addrs, bool InSet, const MCSymbolRefExpr *&A, const MCSymbolRefExpr *&B, int64_t &Addend) |
Helper method for. | |
static bool | EvaluateSymbolicAdd (const MCAssembler *Asm, const MCAsmLayout *Layout, const SectionAddrMap *Addrs, bool InSet, const MCValue &LHS, const MCSymbolRefExpr *RHS_A, const MCSymbolRefExpr *RHS_B, int64_t RHS_Cst, MCValue &Res) |
Evaluate the result of an add between (conceptually) two MCValues. |
#define DEBUG_TYPE "mcexpr" |
Definition at line 25 of file MCExpr.cpp.
static void AttemptToFoldSymbolOffsetDifference | ( | const MCAssembler * | Asm, |
const MCAsmLayout * | Layout, | ||
const SectionAddrMap * | Addrs, | ||
bool | InSet, | ||
const MCSymbolRefExpr *& | A, | ||
const MCSymbolRefExpr *& | B, | ||
int64_t & | Addend | ||
) | [static] |
static bool EvaluateSymbolicAdd | ( | const MCAssembler * | Asm, |
const MCAsmLayout * | Layout, | ||
const SectionAddrMap * | Addrs, | ||
bool | InSet, | ||
const MCValue & | LHS, | ||
const MCSymbolRefExpr * | RHS_A, | ||
const MCSymbolRefExpr * | RHS_B, | ||
int64_t | RHS_Cst, | ||
MCValue & | Res | ||
) | [static] |
Evaluate the result of an add between (conceptually) two MCValues.
This routine conceptually attempts to construct an MCValue: Result = (Result_A - Result_B + Result_Cst) from two MCValue's LHS and RHS where Result = LHS + RHS and Result = (LHS_A - LHS_B + LHS_Cst) + (RHS_A - RHS_B + RHS_Cst).
This routine attempts to aggresively fold the operands such that the result is representable in an MCValue, but may not always succeed.
Definition at line 589 of file MCExpr.cpp.
Referenced by llvm::MCExpr::EvaluateAsRelocatableImpl().