[sledge] Do not translate LLVM vector types

Summary:
While vector types can be translated, vector operations are not
currently handled. Translating type can lead to later failures (such
as bogus Convert expressions) that are not clearly identifiable as
originating from vector types. So fail eagerly when a vector type is
seen. Note that the only vectors that the frontend sees are due to
incompleteness of the LLVM vectorizer pass.

Reviewed By: jvillard

Differential Revision: D24746224

fbshipit-source-id: 30c0715eb
master
Josh Berdine 4 years ago committed by Facebook GitHub Bot
parent d542c7b7b2
commit d768e74416

@ -249,10 +249,6 @@ let rec xlate_type : x -> Llvm.lltype -> Typ.t =
todo "non-integral pointer types: %a" pp_lltype llt () ; todo "non-integral pointer types: %a" pp_lltype llt () ;
let elt = xlate_type x (Llvm.element_type llt) in let elt = xlate_type x (Llvm.element_type llt) in
Typ.pointer ~elt Typ.pointer ~elt
| Vector ->
let elt = xlate_type x (Llvm.element_type llt) in
let len = Llvm.vector_size llt in
Typ.array ~elt ~len ~bits ~byts
| Array -> | Array ->
let elt = xlate_type x (Llvm.element_type llt) in let elt = xlate_type x (Llvm.element_type llt) in
let len = Llvm.array_length llt in let len = Llvm.array_length llt in
@ -273,6 +269,7 @@ let rec xlate_type : x -> Llvm.lltype -> Typ.t =
in in
Typ.struct_ ~name elts ~bits ~byts ~packed Typ.struct_ ~name elts ~bits ~byts ~packed
| Function -> fail "expected to be unsized: %a" pp_lltype llt () | Function -> fail "expected to be unsized: %a" pp_lltype llt ()
| Vector -> todo "vector types: %a" pp_lltype llt ()
| Void | Label | Metadata | Token -> assert false | Void | Label | Metadata | Token -> assert false
else else
match Llvm.classify_type llt with match Llvm.classify_type llt with

Loading…
Cancel
Save