*/
BOOL CILJit::isCacheCleanupRequired(void)
{
- BOOL doCleanup;
-
if (g_realJitCompiler != nullptr)
{
if (g_realJitCompiler->isCacheCleanupRequired())
/* figure out the signature */
- EXCEPTION_POINTERS exceptionPointers;
-
PAL_TRY(FilterSuperPMIExceptionsParam_eeinterface*, pParam, ¶m)
{
unsigned i;
{
assert(emitComp->compGeneratingProlog);
- size_t prolSz;
-
- insGroup* tempIG;
-
emitNoGCIG = false;
/* Save the prolog IG if non-empty or if only one block */
char* retbuf;
insGroup* ig;
- UNATIVE_OFFSET of;
UNATIVE_OFFSET nextof = 0;
for (ig = emitIGlist; ig != nullptr; ig = ig->igNext)
if (tree->OperIsUnary() && tree->gtOp.gtOp1)
{
- GenTreePtr lclVarTree;
expectedPrevTree = tree->gtOp.gtOp1;
}
else if (tree->OperIsBinary() && tree->gtOp.gtOp1)
/* Is this a FP value? */
- bool isflt = varTypeIsFloating(tree->TypeGet());
- unsigned FPlvlSave;
+ bool isflt = varTypeIsFloating(tree->TypeGet());
/* Figure out what kind of a node we have */
int costEx;
int costSz;
- bool bRngChk;
-
#ifdef DEBUG
costEx = -1;
costSz = -1;
(op2->gtOp.gtOp1->gtOper == GT_MUL &&
op2->gtOp.gtOp1->gtOp.gtOp1->gtOper == GT_NOP))
{
- // assert(bRngChk);
op2->gtFlags |= GTF_ADDRMODE_NO_CSE;
if (op2->gtOp.gtOp1->gtOper == GT_MUL)
{
if (tree->gtCall.gtCallArgs)
{
#if FEATURE_STACK_FP_X87
- FPlvlSave = codeGen->genGetFPstkLevel();
+ unsigned FPlvlSave = codeGen->genGetFPstkLevel();
#endif // FEATURE_STACK_FP_X87
const bool isListCallArgs = true;
const bool callArgsInRegs = false;
if (tree->gtCall.gtCallLateArgs)
{
#if FEATURE_STACK_FP_X87
- FPlvlSave = codeGen->genGetFPstkLevel();
+ unsigned FPlvlSave = codeGen->genGetFPstkLevel();
#endif // FEATURE_STACK_FP_X87
const bool isListCallArgs = true;
const bool callArgsInRegs = true;
__in_opt const char* msg, /* = nullptr */
bool topOnly) /* = false */
{
- IndentInfo info;
indentStack->Push(arcType);
gtDispTree(child, indentStack, msg, topOnly);
indentStack->Pop();
int oldSizeLog2 = log2_hashSize;
int log2_newSize = genLog2((unsigned)newSize);
- int size;
hashBvNode** newNodes = this->getNewVector(newSize);
CORINFO_CLASS_HANDLE argClass;
CORINFO_CLASS_HANDLE argRealClass;
GenTreeArgList* args;
- unsigned sigSize;
for (args = treeList, count = sig->numArgs; count > 0; args = args->Rest(), count--)
{
if (!opts.IsReadyToRun() || IsTargetAbi(CORINFO_CORERT_ABI))
{
- LclVarDsc* newObjArrayArgsVar;
// Reuse the temp used to pass the array dimensions to avoid bloating
// the stack frame in case there are multiple calls to multi-dim array
int val;
CORINFO_SIG_INFO sig;
- unsigned flags;
IL_OFFSET jmpAddr;
bool ovfl, unordered, callNode;
bool ldstruct;
bool* pStmtInfoDirty DEBUGARG(bool* treeModf))
{
GenTreePtr tree;
- unsigned lclNum;
// Don't kill vars in scope
VARSET_TP keepAliveVars(VarSetOps::Union(this, volatileVars, compCurBB->bbScope));
pTreeB = pTreeB->gtSkipReloadOrCopy();
genTreeOps oper;
- unsigned kind;
if (pTreeA->OperGet() != pTreeB->OperGet())
{
void LinearScan::lsraDumpIntervals(const char* msg)
{
- Interval* interval;
-
printf("\nLinear scan intervals %s:\n", msg);
for (auto& interval : intervals)
{
SetContainsAVXFlags(varTypeIsFloating(tree->TypeGet()));
switch (tree->OperGet())
{
- GenTree* op1;
- GenTree* op2;
-
default:
TreeNodeInfoInitSimple(tree);
break;
break;
case GT_LOCKADD:
- op2 = tree->gtOp.gtOp2;
+ {
+ GenTreePtr op2 = tree->gtOp.gtOp2;
info->srcCount = op2->isContained() ? 1 : 2;
assert(info->dstCount == (tree->TypeGet() == TYP_VOID) ? 0 : 1);
- break;
+ }
+ break;
case GT_PUTARG_REG:
TreeNodeInfoInitPutArgReg(tree->AsUnOp());
//
void Compiler::fgMorphMultiregStructArgs(GenTreeCall* call)
{
- GenTreePtr args;
- GenTreePtr argx;
bool foundStructArg = false;
unsigned initialFlags = call->gtFlags;
unsigned flagsSummary = 0;
#endif // !UNIX_AMD64_ABI
#endif
- for (args = call->gtCallArgs; args != nullptr; args = args->gtOp.gtOp2)
+ for (GenTreePtr args = call->gtCallArgs; args != nullptr; args = args->gtOp.gtOp2)
{
// For late arguments the arg tree that is overridden is in the gtCallLateArgs list.
// For such late args the gtCallArgList contains the setup arg node (evaluating the arg.)
* Perform the required oper-specific postorder morphing
*/
- GenTreePtr temp;
- GenTreePtr cns1, cns2;
- GenTreePtr thenNode;
- GenTreePtr elseNode;
- size_t ival1, ival2;
- GenTreePtr lclVarTree;
- GenTreeLclVarCommon* lclVarCmnTree;
- FieldSeqNode* fieldSeq = nullptr;
+ GenTreePtr temp;
+ GenTreePtr cns1, cns2;
+ size_t ival1, ival2;
+ GenTreePtr lclVarTree;
+ FieldSeqNode* fieldSeq = nullptr;
switch (oper)
{
#ifdef LEGACY_BACKEND
case GT_QMARK:
-
+ {
/* If op1 is a comma throw node then we won't be keeping op2 */
if (fgIsCommaThrow(op1))
{
/* Get hold of the two branches */
noway_assert(op2->OperGet() == GT_COLON);
- elseNode = op2->AsColon()->ElseNode();
- thenNode = op2->AsColon()->ThenNode();
+ GenTreePtr thenNode = op2->AsColon()->ThenNode();
+ GenTreePtr elseNode = op2->AsColon()->ElseNode();
/* Try to hoist assignments out of qmark colon constructs.
ie. replace (cond?(x=a):(x=b)) with (x=(cond?a:b)). */
}
}
#endif // !_TARGET_ARM_
-
- break; // end case GT_QMARK
-#endif // LEGACY_BACKEND
+ }
+ break; // end case GT_QMARK
+#endif // LEGACY_BACKEND
case GT_MUL:
}
#endif
- /* Process all statement trees in the basic block */
-
- GenTreePtr tree;
+/* Process all statement trees in the basic block */
#ifndef LEGACY_BACKEND
fgMorphStmts(block, &lnot, &loadw);
if (mult && (opts.compFlags & CLFLG_TREETRANS) && !opts.compDbgCode && !opts.MinOpts())
{
- for (tree = block->bbTreeList; tree; tree = tree->gtNext)
+ for (GenTreePtr tree = block->bbTreeList; tree; tree = tree->gtNext)
{
assert(tree->gtOper == GT_STMT);
GenTreePtr last = tree->gtStmt.gtStmtExpr;
setLclRelatedToSIMDIntrinsic(localDst);
}
- GenTree* simdStructAddr;
if (simdStructNode->TypeGet() == TYP_BYREF)
{
assert(simdStructNode->OperIsLocal());
{
for (BasicBlock* block = fgFirstBB; block; block = block->bbNext)
{
- GenTreePtr stmt;
- GenTreePtr tree;
-
/* Initialize the blocks's bbCseIn set */
bool init_to_zero = false;
BasicBlock* head = pLoopDsc->lpHead;
BasicBlock* tail = pLoopDsc->lpBottom;
BasicBlock* lbeg = pLoopDsc->lpEntry;
- BasicBlock* block;
// We must have a do-while loop
if ((pLoopDsc->lpFlags & LPFLG_DO_WHILE) == 0)
UT q2;
UT t;
T result_magic;
- int result_shift;
int iters = 0;
absDenom = abs(denom);