[WebAssembly] Update bleeding-edge CPU features

Summary:
This adds bulk memory and tail call to "bleeding-edge" CPU, since their
implementation in LLVM/clang seems mostly complete.

Reviewers: tlively

Subscribers: dschuff, sbc100, jgravelle-google, sunfish, cfe-commits

Tags: #clang

Differential Revision: https://reviews.llvm.org/D73322
This commit is contained in:
Heejin Ahn 2020-01-23 19:32:32 -08:00
parent 764f4089e8
commit 65eb11306e
4 changed files with 16 additions and 5 deletions

View File

@ -105,8 +105,10 @@ bool WebAssemblyTargetInfo::initFeatureMap(
if (CPU == "bleeding-edge") { if (CPU == "bleeding-edge") {
Features["nontrapping-fptoint"] = true; Features["nontrapping-fptoint"] = true;
Features["sign-ext"] = true; Features["sign-ext"] = true;
Features["bulk-memory"] = true;
Features["atomics"] = true; Features["atomics"] = true;
Features["mutable-globals"] = true; Features["mutable-globals"] = true;
Features["tail-call"] = true;
setSIMDLevel(Features, SIMD128); setSIMDLevel(Features, SIMD128);
} }
// Other targets do not consider user-configured features here, but while we // Other targets do not consider user-configured features here, but while we

View File

@ -134,12 +134,14 @@
// //
// BLEEDING-EDGE-DAG:#define __wasm_nontrapping_fptoint__ 1{{$}} // BLEEDING-EDGE-DAG:#define __wasm_nontrapping_fptoint__ 1{{$}}
// BLEEDING-EDGE-DAG:#define __wasm_sign_ext__ 1{{$}} // BLEEDING-EDGE-DAG:#define __wasm_sign_ext__ 1{{$}}
// BLEEDING-EDGE-DAG:#define __wasm_bulk_memory__ 1{{$}}
// BLEEDING-EDGE-DAG:#define __wasm_simd128__ 1{{$}} // BLEEDING-EDGE-DAG:#define __wasm_simd128__ 1{{$}}
// BLEEDING-EDGE-DAG:#define __wasm_atomics__ 1{{$}} // BLEEDING-EDGE-DAG:#define __wasm_atomics__ 1{{$}}
// BLEEDING-EDGE-DAG:#define __wasm_mutable_globals__ 1{{$}} // BLEEDING-EDGE-DAG:#define __wasm_mutable_globals__ 1{{$}}
// BLEEDING-EDGE-DAG:#define __wasm_tail_call__ 1{{$}}
// BLEEDING-EDGE-NOT:#define __wasm_unimplemented_simd128__ 1{{$}} // BLEEDING-EDGE-NOT:#define __wasm_unimplemented_simd128__ 1{{$}}
// BLEEDING-EDGE-NOT:#define __wasm_exception_handling__ 1{{$}}
// BLEEDING-EDGE-NOT:#define __wasm_multivalue__ 1{{$}} // BLEEDING-EDGE-NOT:#define __wasm_multivalue__ 1{{$}}
// BLEEDING-EDGE-NOT:#define __wasm_tail_call__ 1{{$}}
// BLEEDING-EDGE-NOT:#define __wasm_reference_types__ 1{{$}} // BLEEDING-EDGE-NOT:#define __wasm_reference_types__ 1{{$}}
// RUN: %clang -E -dM %s -o - 2>&1 \ // RUN: %clang -E -dM %s -o - 2>&1 \

View File

@ -102,7 +102,8 @@ def : ProcessorModel<"generic", NoSchedModel, []>;
def : ProcessorModel<"bleeding-edge", NoSchedModel, def : ProcessorModel<"bleeding-edge", NoSchedModel,
[FeatureSIMD128, FeatureAtomics, [FeatureSIMD128, FeatureAtomics,
FeatureNontrappingFPToInt, FeatureSignExt, FeatureNontrappingFPToInt, FeatureSignExt,
FeatureMutableGlobals]>; FeatureMutableGlobals, FeatureBulkMemory,
FeatureTailCall]>;
//===----------------------------------------------------------------------===// //===----------------------------------------------------------------------===//
// Target Declaration // Target Declaration

View File

@ -83,13 +83,16 @@ attributes #2 = { "target-features"="+reference-types" }
; SIMD128-NEXT: .int8 7 ; SIMD128-NEXT: .int8 7
; SIMD128-NEXT: .ascii "simd128" ; SIMD128-NEXT: .ascii "simd128"
; +atomics, +mutable-globals, +nontrapping-fptoint, +reference-types, +sign-ext, ; +atomics, +bulk-memory, +mutable-globals, +nontrapping-fptoint,
; +simd128 ; +reference-types, +sign-ext, +simd128, +tail-call
; BLEEDING-EDGE-NEXT: .int8 6 ; BLEEDING-EDGE-NEXT: .int8 8
; BLEEDING-EDGE-NEXT: .int8 43 ; BLEEDING-EDGE-NEXT: .int8 43
; BLEEDING-EDGE-NEXT: .int8 7 ; BLEEDING-EDGE-NEXT: .int8 7
; BLEEDING-EDGE-NEXT: .ascii "atomics" ; BLEEDING-EDGE-NEXT: .ascii "atomics"
; BLEEDING-EDGE-NEXT: .int8 43 ; BLEEDING-EDGE-NEXT: .int8 43
; BLEEDING-EDGE-NEXT: .int8 11
; BLEEDING-EDGE-NEXT: .ascii "bulk-memory"
; BLEEDING-EDGE-NEXT: .int8 43
; BLEEDING-EDGE-NEXT: .int8 15 ; BLEEDING-EDGE-NEXT: .int8 15
; BLEEDING-EDGE-NEXT: .ascii "mutable-globals" ; BLEEDING-EDGE-NEXT: .ascii "mutable-globals"
; BLEEDING-EDGE-NEXT: .int8 43 ; BLEEDING-EDGE-NEXT: .int8 43
@ -104,5 +107,8 @@ attributes #2 = { "target-features"="+reference-types" }
; BLEEDING-EDGE-NEXT: .int8 43 ; BLEEDING-EDGE-NEXT: .int8 43
; BLEEDING-EDGE-NEXT: .int8 7 ; BLEEDING-EDGE-NEXT: .int8 7
; BLEEDING-EDGE-NEXT: .ascii "simd128" ; BLEEDING-EDGE-NEXT: .ascii "simd128"
; BLEEDING-EDGE-NEXT: .int8 43
; BLEEDING-EDGE-NEXT: .int8 9
; BLEEDING-EDGE-NEXT: .ascii "tail-call"
; CHECK-NEXT: .text ; CHECK-NEXT: .text