diff --git a/Makefile b/Makefile index 250f27b5c0b3e6adb5888bb50a361d67a321f1e7..2c0c408ec4d3553a412129a66ecbd930dd548c5b 100644 --- a/Makefile +++ b/Makefile @@ -158,6 +158,10 @@ ctorture-ci: ctorture: (cd third_party/ctorture; git checkout .; git pull; ./run.sh work.list) +.PHONY: ctorture2 +ctorture2: + (cd third_party/ctorture; git checkout .; git pull; ./run.sh work.list hir2mpl) + THREADS := 50 ifneq ($(findstring test,$(MAKECMDGOALS)),) TESTTARGET := $(MAKECMDGOALS) diff --git a/src/mapleall/maple_be/src/cg/aarch64/aarch64_prop.cpp b/src/mapleall/maple_be/src/cg/aarch64/aarch64_prop.cpp index aefefd1788e3d9ae1caf760ab31f2aae02c9cc48..584c73a85551d840307ad52d0e3a6e67b04cc2e2 100644 --- a/src/mapleall/maple_be/src/cg/aarch64/aarch64_prop.cpp +++ b/src/mapleall/maple_be/src/cg/aarch64/aarch64_prop.cpp @@ -201,7 +201,8 @@ bool A64ConstProp::ArithmeticConstReplace(DUInsnInfo &useDUInfo, AArch64ImmOpera auto *tempImm = static_cast(constOpnd.Clone(*constPropMp)); /* try aarch64 imm shift mode */ tempImm->SetValue(tempImm->GetValue() >> 12); - if (static_cast(cgFunc)->IsOperandImmValid(newMop, tempImm, kInsnThirdOpnd)) { + if (static_cast(cgFunc)->IsOperandImmValid(newMop, tempImm, kInsnThirdOpnd) && + CGOptions::GetInstance().GetOptimizeLevel() < 0) { ASSERT(false, "NIY"); } /* Addition and subtraction reversal */ diff --git a/src/mapleall/maple_be/src/cg/reaching.cpp b/src/mapleall/maple_be/src/cg/reaching.cpp index e41a87217d75dcffe6941c7b7dcb089429d58d2d..72c6fa87e3cc1e1d14462993963c5359625b6e7f 100644 --- a/src/mapleall/maple_be/src/cg/reaching.cpp +++ b/src/mapleall/maple_be/src/cg/reaching.cpp @@ -604,8 +604,8 @@ void ReachingDefinition::InitDataSize() { /* compute bb->in, bb->out for each BB execpt cleanup BB */ void ReachingDefinition::BuildInOutForFuncBody() { - std::set normalBBSetBak(normalBBSet.begin(), normalBBSet.end()); - std::set::iterator setItr; + std::unordered_set normalBBSetBak(normalBBSet.begin(), normalBBSet.end()); + std::unordered_set::iterator setItr; while (!normalBBSetBak.empty()) { setItr = normalBBSetBak.begin(); BB *bb = *setItr; @@ -634,8 +634,8 @@ void ReachingDefinition::UpdateInOut(BB &changedBB) { return; } - std::set bbSet; - std::set::iterator setItr; + std::unordered_set bbSet; + std::unordered_set::iterator setItr; for (auto succ : changedBB.GetSuccs()) { (void)bbSet.insert(succ); @@ -727,8 +727,8 @@ void ReachingDefinition::BuildInOutForCleanUpBB() { if (GenerateInForFirstCleanUpBB()) { GenerateOut(*firstCleanUpBB); } - std::set cleanupBBSetBak(cleanUpBBSet.begin(), cleanUpBBSet.end()); - std::set::iterator setItr; + std::unordered_set cleanupBBSetBak(cleanUpBBSet.begin(), cleanUpBBSet.end()); + std::unordered_set::iterator setItr; while (!cleanupBBSetBak.empty()) { setItr = cleanupBBSetBak.begin(); @@ -753,8 +753,8 @@ void ReachingDefinition::BuildInOutForCleanUpBB(bool isReg, const std::set cleanupBBSetBak(cleanUpBBSet.begin(), cleanUpBBSet.end()); - std::set::iterator setItr; + std::unordered_set cleanupBBSetBak(cleanUpBBSet.begin(), cleanUpBBSet.end()); + std::unordered_set::iterator setItr; while (!cleanupBBSetBak.empty()) { setItr = cleanupBBSetBak.begin(); BB *bb = *setItr;