diff --git a/src/mapleall/bin/debug/dex2mpl.tar.gz b/src/mapleall/bin/debug/dex2mpl.tar.gz index 714334a56671254f64b1617e5162a5cb5bfe0b0d..dde072e809536448e8127da046c12fb610a8ac4c 100644 Binary files a/src/mapleall/bin/debug/dex2mpl.tar.gz and b/src/mapleall/bin/debug/dex2mpl.tar.gz differ diff --git a/src/mapleall/bin/dex2mpl b/src/mapleall/bin/dex2mpl index 828f81b87c614bd6c5342981cfa1aea7251c57b0..218ef48d15bef623849daacd78a223fbd5ae1aee 100755 Binary files a/src/mapleall/bin/dex2mpl and b/src/mapleall/bin/dex2mpl differ diff --git a/src/mapleall/bin/dex2mpl_android b/src/mapleall/bin/dex2mpl_android index 82891c696b30c7401cfcbc860e402408f6a46ebb..2001cab77d15defb742611fd8e938009d6bef1be 100755 Binary files a/src/mapleall/bin/dex2mpl_android and b/src/mapleall/bin/dex2mpl_android differ diff --git a/src/mapleall/bin/jbc2mpl b/src/mapleall/bin/jbc2mpl index e8f371171e12eb85e59a0746b0ca88645bf09cb4..818e8dd2cbfb71f1106c7b8d50f2dc18e6782f0a 100755 Binary files a/src/mapleall/bin/jbc2mpl and b/src/mapleall/bin/jbc2mpl differ diff --git a/src/mapleall/maple_be/src/be/lower.cpp b/src/mapleall/maple_be/src/be/lower.cpp index ea07f8115593da4991387ba1c619eefb61a5975a..36a551c7e107fe376613069490e9212fb76e19e5 100644 --- a/src/mapleall/maple_be/src/be/lower.cpp +++ b/src/mapleall/maple_be/src/be/lower.cpp @@ -1202,7 +1202,7 @@ BlockNode *CGLowerer::LowerBlock(BlockNode &block) { newBlk->AddStatement(stmt); break; case OP_throw: - if (mirModule.GetSrcLang() == kSrcLangJava) { + if (mirModule.IsJavaModule()) { if (GenerateExceptionHandlingCode()) { LowerStmt(*stmt, *newBlk); newBlk->AddStatement(stmt); @@ -1792,8 +1792,7 @@ LabelIdx CGLowerer::GetLabelIdx(MIRFunction &curFunc) const { } void CGLowerer::ProcessArrayExpr(BaseNode &expr, BlockNode &blkNode) { - bool needProcessArrayExpr = - !ShouldOptarray() && ((mirModule.GetSrcLang() == kSrcLangDex) || (mirModule.GetSrcLang() == kSrcLangJava)); + bool needProcessArrayExpr = !ShouldOptarray() && mirModule.IsJavaModule(); if (!needProcessArrayExpr) { return; } @@ -2820,7 +2819,7 @@ void CGLowerer::LowerGCMalloc(const BaseNode &node, const GCMallocNode &gcmalloc auto *curFunc = mirModule.CurFunction(); if (classSym->GetAttr(ATTR_abstract) || classSym->GetAttr(ATTR_interface)) { MIRFunction *funcSecond = mirBuilder->GetOrCreateFunction("MCC_Reflect_ThrowInstantiationError", - (TyIdx)(LOWERED_PTR_TYPE)); + (TyIdx)(LOWERED_PTR_TYPE)); funcSecond->AllocSymTab(); BaseNode *arg = mirBuilder->CreateExprAddrof(0, *classSym); if (node.GetOpCode() == OP_dassign) { @@ -3025,8 +3024,7 @@ void CGLowerer::LowerFunc(MIRFunction &func) { CleanupBranches(func); } - if (mirModule.GetSrcLang() == kSrcLangJava && func.GetBody()->GetFirst() && - GenerateExceptionHandlingCode()) { + if (mirModule.IsJavaModule() && func.GetBody()->GetFirst() && GenerateExceptionHandlingCode()) { LowerTryCatchBlocks(*func.GetBody()); } } diff --git a/src/mapleall/maple_be/src/cg/aarch64/aarch64_cgfunc.cpp b/src/mapleall/maple_be/src/cg/aarch64/aarch64_cgfunc.cpp index 922b06e567f62164b9ad06af79c51aa9f81838bb..d88a346c2fc8782e9454c2af3f130df8f01b49cb 100644 --- a/src/mapleall/maple_be/src/cg/aarch64/aarch64_cgfunc.cpp +++ b/src/mapleall/maple_be/src/cg/aarch64/aarch64_cgfunc.cpp @@ -3830,7 +3830,7 @@ void AArch64CGFunc::SelectCvtInt2Int(const BaseNode *parent, Operand *&resOpnd, } } else { /* same size, so resOpnd can be set */ - if ((mirModule.GetSrcLang() == kSrcLangJava) || (IsSignedInteger(fromType) == IsSignedInteger(toType)) || + if ((mirModule.IsJavaModule()) || (IsSignedInteger(fromType) == IsSignedInteger(toType)) || (GetPrimTypeSize(toType) > k4BitSize)) { AArch64RegOperand *reg = static_cast(resOpnd); reg->SetRegisterNumber(static_cast(opnd0)->GetRegisterNumber()); diff --git a/src/mapleall/maple_be/src/cg/aarch64/aarch64_immediate.cpp b/src/mapleall/maple_be/src/cg/aarch64/aarch64_immediate.cpp index 858b40f9fef53abfce71d9e78c16265cc4a28207..ac20dfd6eb419ef4f23e2197a30181a9199960a6 100644 --- a/src/mapleall/maple_be/src/cg/aarch64/aarch64_immediate.cpp +++ b/src/mapleall/maple_be/src/cg/aarch64/aarch64_immediate.cpp @@ -72,9 +72,7 @@ bool IsBitmaskImmediate(uint64 val, uint32 bitLen) { static_cast(val) << "\n"; return false; } -#if DEBUG ASSERT(expectedOutcome, "incorrect implementation: not valid value but returning true"); -#endif /* power of two or zero ; return true */ return true; } diff --git a/src/mapleall/maple_ir/include/mir_module.h b/src/mapleall/maple_ir/include/mir_module.h index 093f9bb989de53687e39730b5b04e7a03138b5fc..57cd8157a706b6c61b732aa715208b41ba0bfc69 100644 --- a/src/mapleall/maple_ir/include/mir_module.h +++ b/src/mapleall/maple_ir/include/mir_module.h @@ -56,10 +56,8 @@ enum MIRSrcLang { kSrcLangUnknown, kSrcLangC, kSrcLangJs, - kSrcLangDex, kSrcLangCPlusPlus, kSrcLangJava, - kSrcLangJbc, kSrcLangChar, // SrcLangSwift : when clang adds support for Swift. }; @@ -284,7 +282,7 @@ class MIRModule { } bool IsJavaModule() const { - return srcLang == kSrcLangJava || srcLang == kSrcLangDex || srcLang == kSrcLangJbc; + return srcLang == kSrcLangJava; } bool IsCModule() const { diff --git a/src/mapleall/maple_ir/src/mir_module.cpp b/src/mapleall/maple_ir/src/mir_module.cpp index a0549b16a9680dae84deace8871b9f4114acde68..a08a1d489e7978f24b9d32a61439aabac6c5f242 100644 --- a/src/mapleall/maple_ir/src/mir_module.cpp +++ b/src/mapleall/maple_ir/src/mir_module.cpp @@ -476,7 +476,7 @@ void MIRModule::DumpTypeTreeToCxxHeaderFile(MIRType &ty, std::unordered_set(ty); MIRClassType *parentType = nullptr; @@ -531,8 +531,8 @@ void MIRModule::DumpToCxxHeaderFile(std::set &leafClasses, const st // define a hash table std::unordered_set dumpedClasses; const char *prefix = "__SRCLANG_UNKNOWN_"; - if (srcLang == kSrcLangDex) { - prefix = "__SRCLANG_DEX_"; + if (IsJavaModule()) { + prefix = "__SRCLANG_JAVA_"; } else if (srcLang == kSrcLangC || srcLang == kSrcLangCPlusPlus) { prefix = "__SRCLANG_CXX_"; } diff --git a/src/mapleall/maple_ir/src/mir_nodes.cpp b/src/mapleall/maple_ir/src/mir_nodes.cpp index edb5b7e5b30e9b7b508dd25f7a905c0149ce94f7..fdc9cb300287dddf16dc0e76e2a8387a3529a461 100644 --- a/src/mapleall/maple_ir/src/mir_nodes.cpp +++ b/src/mapleall/maple_ir/src/mir_nodes.cpp @@ -1533,8 +1533,7 @@ bool RetypeNode::VerifyCompleteMIRType(const MIRType &from, const MIRType &to, b LogInfo::MapleLogger() << "\n#Error: retype scalar type failed\n"; return false; } - MIRSrcLang srcLang = verifyResult.GetMIRModule().GetSrcLang(); - if (srcLang != kSrcLangJava && srcLang != kSrcLangJbc && srcLang != kSrcLangDex) { + if (!verifyResult.GetMIRModule().IsJavaModule()) { return true; } isJavaRefType |= IsJavaRefType(from) && IsJavaRefType(to); diff --git a/src/mapleall/maple_me/src/me_cfg.cpp b/src/mapleall/maple_me/src/me_cfg.cpp index 93c8927b7f8b39ae396043020153e5668b030ec1..78d59b3e7bf52a33d60912763fa5ad65002290d6 100644 --- a/src/mapleall/maple_me/src/me_cfg.cpp +++ b/src/mapleall/maple_me/src/me_cfg.cpp @@ -165,7 +165,7 @@ void MeCFG::AddCatchHandlerForTryBB(BB &bb, MapleVector &exitBlocks) { bb.SetAttributes(kBBAttrIsExit); // may exit exitBlocks.push_back(&bb); } - } else if ((func.GetMIRModule().GetSrcLang() == kSrcLangDex) && bb.GetAttributes(kBBAttrIsExit)) { + } else if (func.GetMIRModule().IsJavaModule() && bb.GetAttributes(kBBAttrIsExit)) { // deal with throw bb, if throw bb in a tryblock and has finallyhandler auto &stmtNodes = bb.GetStmtNodes(); if (!stmtNodes.empty() && stmtNodes.back().GetOpCode() == OP_throw) { diff --git a/testsuite/driver/config/testall.conf b/testsuite/driver/config/testall.conf index fc47b39a6eb3cab5e2e9f1e1e9a444eefe803a56..995c78e9b826428ab26070ba26af9d84bbedc731 100644 --- a/testsuite/driver/config/testall.conf +++ b/testsuite/driver/config/testall.conf @@ -1,5 +1,5 @@ [OPTION_SUITE] - common_option: O0 + common_option: O0, O2 [DEFAULT_SUITE] java_test/app_test: common_option @@ -21,8 +21,6 @@ [BAN_SUITE] irbuild_test/I0062-mapleall-irbuild-edge-pregs: IR - irbuild_test/I0069-mapleall-irbuild-edge-struct2: IR - irbuild_test/I0075-mapleall-irbuild-edge-substructinit: IR java_test/compact_test/RT0199-rt-compact-AnnotationPackageSetTest: O0 java_test/eh_test/native_test/RT0023-rt-eh-NativeCatchExceptionTest: O0 java_test/eh_test/native_test/RT0024-rt-eh-NativeCodeCheckExceptionTest: O0 @@ -147,3 +145,122 @@ java_test/thread_test/RT0094-rt-thread-ThreadStateyield: O0 java_test/thread_test/RT0189-rt-thread-GetAllStackTraceIterating: O0 java_test/thread_test/RT0200-rt-thread-TestSynchronized: O0 + java_test/compact_test/RT0199-rt-compact-AnnotationPackageSetTest: O2 + java_test/eh_test/native_test/RT0023-rt-eh-NativeCatchExceptionTest: O2 + java_test/eh_test/native_test/RT0024-rt-eh-NativeCodeCheckExceptionTest: O2 + java_test/eh_test/native_test/RT0025-rt-eh-NativeNewExceptionTest: O2 + java_test/eh_test/native_test/RT0026-rt-eh-NativeTryCatchNewExceptionTest: O2 + java_test/eh_test/native_test/RT0027-rt-eh-NativeCodeCheckNewExceptionTest: O2 + java_test/eh_test/native_test/RT0028-rt-eh-NativeClearExceptionTest: O2 + java_test/eh_test/native_test/RT0029-rt-eh-NativeCodeCatchThrowNewExceptionTest: O2 + java_test/eh_test/native_test/RT0030-rt-eh-NativeCheckFatalErrorExceptionTest: O2 + java_test/other_test/RT0008-rt-other-PassingFloat: O2 + java_test/rc_test/common_test/RC0427-rc-Annotation-RCMixTest: O2 + java_test/rc_test/common_test/RC0428-rc-Annotation-RCMixThreadTest: O2 + java_test/rc_test/common_test/RC0434-rc-SoftRef-SoftRefTest04: O2 + java_test/rc_test/common_test/RC0436-rc-SoftRef-SoftRefTest06: O2 + java_test/rc_test/common_test/RC0437-rc-RCHeader-RCHeaderTest: O2 + java_test/rc_test/common_test/RC0438-rc-RCHeader-RCHeaderTest02: O2 + java_test/rc_test/common_test/RC0439-rc-RCHeader-RCHeaderTest03: O2 + java_test/rc_test/common_test/RC0441-rc-RCHeader-RCHeaderTest06: O2 + java_test/rc_test/common_test/RC0442-rc-RCHeader-RCHeaderTest07: O2 + java_test/rc_test/common_test/RC0445-rc-PlacementRC-PlacementRCTest03: O2 + java_test/rc_test/native_test/RC0411-rc-Annotation-RCPermanentTest: O2 + java_test/rc_test/native_test/RC0412-rc-Annotation-RCPermanentTest2: O2 + java_test/rc_test/native_test/RC0413-rc-Annotation-RCPermanentTest3: O2 + java_test/rc_test/native_test/RC0414-rc-Annotation-RCPermanentTest4: O2 + java_test/rc_test/native_test/RC0415-rc-Annotation-RCPermanentTest5: O2 + java_test/rc_test/native_test/RC0416-rc-Annotation-RCPermanentThread: O2 + java_test/rc_test/native_test/RC0423-rc-Annotation-RCPermanentTest6: O2 + java_test/rc_test/native_test/RC0424-rc-Annotation-RCPermanentThread2: O2 + java_test/rc_test/native_test/RC0425-rc-Annotation-RCPermanentTest7: O2 + java_test/rc_test/native_test/RC0426-rc-Annotation-RCPermanentThread3: O2 + java_test/rc_test/native_test/RC0429-rc-Annotation-RCPermanentTest8: O2 + java_test/rc_test/native_test/RC0430-rc-Annotation-RCPermanentThread4: O2 + java_test/rc_test/native_test/RC0448-rc-Annotation-RCPermanentLimit2: O2 + java_test/rc_test/RC0248-rc-function-RC_Finalize_02: O2 + java_test/rc_test/RC0249-rc-function-RC_Finalize_03: O2 + java_test/rc_test/RC0265-rc-function-ROSAlloc-Alloc_B256x8B: O2 + java_test/rc_test/RC0274-rc-function-ROSAlloc-Alloc_Thread2_256x8B_2: O2 + java_test/rc_test/RC0304-rc-function-Ref-WeakRefTest: O2 + java_test/rc_test/RC0338-rc-Memory-normalTestCase28: O2 + java_test/rc_test/RC0339-rc-rp-cycle_all_weak: O2 + java_test/rc_test/RC0340-rc-rp-cycle_weak_strong: O2 + java_test/rc_test/RC0341-rc-rp-mutator: O2 + java_test/rc_test/RC0342-rc-rp-weak_ref_boundary: O2 + java_test/rc_test/RC0343-rc-rp-wcb_test_ref: O2 + java_test/rc_test/RC0344-rc-rp-test_aged_ref: O2 + java_test/rc_test/RC0345-rc-rp-single_or_more: O2 + java_test/rc_test/RC0346-rc-rp-strong_and_weak: O2 + java_test/rc_test/RC0347-rc-rp-simulthread: O2 + java_test/rc_test/RC0348-rc-rp-simpleweakref_01: O2 + java_test/rc_test/RC0349-rc-rp-simpleweakref_02: O2 + java_test/rc_test/RC0350-rc-rp-simpleweakref_03: O2 + java_test/rc_test/RC0351-rc-rp-simpleweakref_04: O2 + java_test/rc_test/RC0352-rc-rp-simpleweakref_05: O2 + java_test/rc_test/RC0353-rc-rp-simpleweakref_06: O2 + java_test/rc_test/RC0354-rc-rp-simpleweakref_07: O2 + java_test/rc_test/RC0355-rc-rp-simpleweakref_08: O2 + java_test/rc_test/RC0356-rc-rp-simpleweakref_09: O2 + java_test/rc_test/RC0357-rc-rp-simpleweakref_10: O2 + java_test/rc_test/RC0358-rc-rp-simpleweakref_11: O2 + java_test/rc_test/RC0359-rc-rp-simpleweakref_12: O2 + java_test/rc_test/RC0360-rc-Memory-leaktestsupplycase-01: O2 + java_test/rc_test/RC0361-rc-Memory-leaktestsupplycase-02: O2 + java_test/rc_test/RC0362-rc-Memory-leaktestsupplycase-03: O2 + java_test/rc_test/RC0363-rc-Memory-leaktestsupplycase-04: O2 + java_test/rc_test/RC0364-rc-Memory-leaktestsupplycase-05: O2 + java_test/rc_test/RC0365-rc-Memory-leaktestsupplycase-06: O2 + java_test/rc_test/RC0380-rc-Annotation-RCWeakRefTest: O2 + java_test/rc_test/RC0381-rc-Annotation-RCWeakRefTest2: O2 + java_test/rc_test/RC0383-rc-Annotation-RCWeakRefTest4: O2 + java_test/rc_test/RC0384-rc-Annotation-RCWeakRefThreadTest: O2 + java_test/rc_test/RC0385-rc-Annotation-RCUnownedRefTest: O2 + java_test/rc_test/RC0386-rc-Annotation-RCUnownedRefTest2: O2 + java_test/rc_test/RC0387-rc-Annotation-RCUnownedRefUnCycle: O2 + java_test/rc_test/RC0389-rc-Annotation-RCUnownedRefUncycleThread: O2 + java_test/rc_test/RC0392-rc-Annotation-RCAnnotationThread02: O2 + java_test/rc_test/RC0394-rc-Annotation-RCAnnotationThread04: O2 + java_test/rc_test/RC0395-rc-Annotation-RCAnnotationThread05: O2 + java_test/rc_test/RC0396-rc-Annotation-RCAnnotationOneCycle: O2 + java_test/rc_test/RC0397-rc-Annotation-RCAnnotationOneCycleThread: O2 + java_test/rc_test/RC0398-rc-Annotation-RCAnnotationTwoCycle: O2 + java_test/rc_test/RC0399-rc-Annotation-RCAnnotationTwoCycle2: O2 + java_test/rc_test/RC0400-rc-Annotation-RCAnnotationTwoCycleThread: O2 + java_test/rc_test/RC0401-rc-Annotation-RCAnnotationTwoCycleThread2: O2 + java_test/rc_test/RC0402-rc-Annotation-RCAnnotationMultiCycle: O2 + java_test/rc_test/RC0403-rc-Annotation-RCAnnotationMultiCycle2: O2 + java_test/rc_test/RC0404-rc-Annotation-RCAnnotationMultiCycleThread: O2 + java_test/rc_test/RC0405-rc-Annotation-RCAnnotationMultiCycleThread2: O2 + java_test/rc_test/RC0417-rc-Annotation-RCUnownedRefTest3: O2 + java_test/rc_test/RC0418-rc-Annotation-RCUnownedRefThreadTest3: O2 + java_test/rc_test/RC0419-rc-Annotation-RCUnownedLocalTest: O2 + java_test/rc_test/RC0420-rc-Annotation-RCUnownedLocalThreadTest: O2 + java_test/rc_test/RC0421-rc-Annotation-RCUnownedOuterTest: O2 + java_test/rc_test/RC0433-rc-SoftRef-SoftRefTest03: O2 + java_test/rc_test/RC0440-rc-RCHeader-RCHeaderTest04: O2 + java_test/rc_test/RC0443-rc-PlacementRC-PlacementRCTest01: O2 + java_test/rc_test/RC0444-rc-PlacementRC-PlacementRCTest02: O2 + java_test/rc_test/RC0446-rc-PlacementRC-PlacementRCTest04: O2 + java_test/rc_test/RC0449-rc-RP-FinalizerReferenceTest01: O2 + java_test/rc_test/RC0450-rc-RP-FinalizerReferenceTest02: O2 + java_test/rc_test/RC0451-rc-RP-FinalizerReferenceTest03: O2 + java_test/rc_test/RC0452-rc-RP-FinalizerReferenceTest04: O2 + java_test/rc_test/RC0453-rc-RP-FinalizerReferenceTest05: O2 + java_test/rc_test/RC0454-rc-RP-FinalizerReferenceTest06: O2 + java_test/rc_test/RC0455-rc-RP-FinalizerReferenceTest07: O2 + java_test/rc_test/RC0456-rc-RP-FinalizerReferenceTest08: O2 + java_test/rc_test/RC0457-rc-GC-TriggerGCTest01: O2 + java_test/rc_test/RC0458-rc-GC-TriggerGCTest02: O2 + java_test/rc_test/RC0459-rc-GC-TriggerGCTest03: O2 + java_test/rc_test/RC0463-rc-GC-TriggerGCTest07: O2 + java_test/rc_test/RC0464-rc-GC-TriggerGCTest08: O2 + java_test/rc_test/RC0465-rc-GC-TriggerGCTest09: O2 + java_test/rc_test/RC0466-rc-GC-TriggerGCTest10: O2 + java_test/rc_test/RC0486-rc-StackScan-CB_Thread_01: O2 + java_test/rc_test/RC0487-rc-StackScan-CB_Thread_02: O2 + java_test/rc_test/RC0495-rc-GC-TaskQueue-FrequentSystemGC_01: O2 + java_test/rc_test/RC0496-rc-GC-TaskQueue-StartupInvoke_01: O2 + java_test/rc_test/RC0515-GC-FrequentGCTest01: O2 + java_test/reflection_test/RT0199-rt-reflection-AnnotationPackageSetTest: O2 + java_test/thread_test/RT0094-rt-thread-ThreadStateyield: O2 diff --git a/testsuite/driver/src/mod/O2.py b/testsuite/driver/src/mod/O2.py new file mode 100644 index 0000000000000000000000000000000000000000..8cb4987438c8ee3df8d16918f98625af948729ed --- /dev/null +++ b/testsuite/driver/src/mod/O2.py @@ -0,0 +1,73 @@ +# +# Copyright (c) [2021] Huawei Technologies Co.,Ltd.All rights reserved. +# +# OpenArkCompiler is licensed under Mulan PSL v2. +# You can use this software according to the terms and conditions of the Mulan PSL v2. +# +# http://license.coscl.org.cn/MulanPSL2 +# +# THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND, EITHER +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT, MERCHANTABILITY OR +# FIT FOR A PARTICULAR PURPOSE. +# See the Mulan PSL v2 for more details. +# + +from api import * + +O2 = { + "clean": [ + Shell( + "rm -rf *.mpl *.dex *.class *.mplt *.s *.so *.o *.log *.jar" + ) + ], + "compile": [ + Java2dex( + jar_file=[ + "${OUT_ROOT}/aarch64-clang-release/ops/third_party/JAVA_LIBRARIES/core-oj_intermediates/classes.jar", + "${OUT_ROOT}/aarch64-clang-release/ops/third_party/JAVA_LIBRARIES/core-libart_intermediates/classes.jar" + ], + outfile="${APP}.dex", + infile=["${APP}.java","${EXTRA_JAVA_FILE}"] + ), + Dex2mpl( + dex2mpl="${OUT_ROOT}/aarch64-clang-release/bin/dex2mpl", + mplt="${OUT_ROOT}/aarch64-clang-release/libjava-core/libcore-all.mplt", + litprofile="${MAPLE_ROOT}/src/mrt/codetricks/profile.pv/meta.list", + infile="${APP}.dex" + ), + Maple( + maple="${OUT_ROOT}/aarch64-clang-release/bin/maple", + run=["me", "mpl2mpl", "mplcg"], + option={ + "me": "--O2 --quiet", + "mpl2mpl": "--O2 --quiet --regnativefunc --no-nativeopt --maplelinker --emitVtableImpl", + "mplcg": "--O2 --quiet --no-pie --fpic --verbose-asm --maplelinker" + }, + global_option="", + infile="${APP}.mpl" + ), + Linker( + lib="host-x86_64-O2", + ) + ], + "run": [ + Mplsh( + qemu="/usr/bin/qemu-aarch64", + qemu_libc="/usr/aarch64-linux-gnu", + qemu_ld_lib=[ + "${OUT_ROOT}/aarch64-clang-release/ops/third_party", + "${OUT_ROOT}/aarch64-clang-release/ops/host-x86_64-O2", + "./" + ], + mplsh="${OUT_ROOT}/aarch64-clang-release/ops/mplsh", + garbage_collection_kind="RC", + xbootclasspath="libcore-all.so", + infile="${APP}.so", + redirection="output.log" + ), + CheckFileEqual( + file1="output.log", + file2="expected.txt" + ) + ] +} diff --git a/testsuite/irbuild_test/I0069-mapleall-irbuild-edge-struct2/Main.mpl b/testsuite/irbuild_test/I0069-mapleall-irbuild-edge-struct2/Main.mpl index 6996dfacb541147bc0e40680b8d1ac0f26384817..0c2404ec4c8e2667691f6b2deef5f289f0da2521 100644 --- a/testsuite/irbuild_test/I0069-mapleall-irbuild-edge-struct2/Main.mpl +++ b/testsuite/irbuild_test/I0069-mapleall-irbuild-edge-struct2/Main.mpl @@ -7,7 +7,7 @@ var $sconst1 = [ 1=1007, 2= [1=11.11f, 2=22.22f], 5=-273, 6=75, 4=6023.1f ] + @f66 f32}> = [ 1=1007, 2= [1=11.11f, 2=22.22f], 5=-273f, 6=75f, 4=6023 ] func $fact () i32 { return (dread i32 $sconst1 1) } diff --git a/testsuite/irbuild_test/I0075-mapleall-irbuild-edge-substructinit/Main.mpl b/testsuite/irbuild_test/I0075-mapleall-irbuild-edge-substructinit/Main.mpl index 710e9b1d5713fa553519a09d822e5d319392e5e2..9638fbf39340b71964c889d8cce691f5a61921be 100644 --- a/testsuite/irbuild_test/I0075-mapleall-irbuild-edge-substructinit/Main.mpl +++ b/testsuite/irbuild_test/I0075-mapleall-irbuild-edge-substructinit/Main.mpl @@ -7,7 +7,7 @@ var $sconst1 = [ 6=1007, 2= [1=11.11f, 2=22.22f], 3=-273.2f, 4=75.3f, 1=1425926, 5=6023 ] + @f66 f32}> = [ 6=1007f, 2= [1=11.11f, 2=22.22f], 3=-273, 4=75, 1=1425926, 5=6023f ] func $printf (var %p1 <* i8>)void func $main ( ) i32 { call &printf (addrof a32 $sconst1)