forked from OSchip/llvm-project
[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:
parent
764f4089e8
commit
65eb11306e
|
@ -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
|
||||||
|
|
|
@ -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 \
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue