llvm-project/llvm/tools
Francesco Petrogalli 623cff81fe [llvm][VectorUtils] Tweak VFShape for scalable vector functions.
Summary:
This patch makes sure that the field VFShape.VF is greater than zero
when demangling the vector function name of scalable vector functions
encoded in the "vector-function-abi-variant" attribute.

This change is required to be able to provide instances of VFShape
that can be used to query the VFDatabase for the vectorization passes,
as such passes always require a positive value for the Vectorization Factor (VF)
needed by the vectorization process.

It is not possible to extract the value of VFShape.VF from the mangled
name of scalable vector functions, because it is encoded as
`x`. Therefore, the VFABI demangling function has been modified to
extract such information from the IR declaration of the vector
function, under the assumption that _all_ vectors in the signature of
the vector function have the same number of lanes. Such assumption is
valid because it is also assumed by the Vector Function ABI
specifications supported by the demangling function (x86, AArch64, and
LLVM internal one).

The unit tests that demangle scalable names have been modified by
adding the IR module that carries the declaration of the vector
function name being demangled.

In particular, the demangling function fails in the following cases:

1. When the declaration of the scalable vector function is not
    present in the module.

2. When the value of VFSHape.VF is not greater than 0.

Reviewers: jdoerfert, sdesmalen, andwar

Reviewed By: jdoerfert

Subscribers: mgorny, kristof.beyls, hiraditya, llvm-commits

Tags: #llvm

Differential Revision: https://reviews.llvm.org/D73286
2020-01-30 05:53:56 +00:00
..
bugpoint One more bugpoitn fix for GCC5 2020-01-29 03:42:02 +01:00
bugpoint-passes [LegacyPassManager] Delete BasicBlockPass/Manager. 2019-10-30 11:40:16 -07:00
dsymutil [llvm] Replace SmallStr.str().str() with std::string conversion operator. 2020-01-29 21:16:46 -08:00
gold Another stab at making the gold plugin compile again 2020-01-29 02:12:53 +01:00
llc Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
lli Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-ar Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-as Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
llvm-as-fuzzer Fix some include order and file headers issues. NFC 2019-02-21 07:42:31 +00:00
llvm-bcanalyzer [llvm-bcanalyzer] Don't dump the contents if -dump is not passed 2019-11-13 10:38:57 -08:00
llvm-c-test Move the sysroot attribute from DIModule to DICompileUnit 2020-01-17 12:55:40 -08:00
llvm-cat Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
llvm-cfi-verify Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-config Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-cov Fix more implicit conversions. Getting closer to having clang working with gcc 5 again 2020-01-29 02:57:59 +01:00
llvm-cvtres Share /machine: handling code with llvm-cvtres too 2019-06-12 11:32:43 +00:00
llvm-cxxdump [llvm/Object] - Make ELFObjectFile::getRelocatedSection return Expected<section_iterator> 2019-10-21 11:06:38 +00:00
llvm-cxxfilt Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-cxxmap Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
llvm-diff llvm-diff: Perform structural comparison on GlobalVariables, if possible 2019-12-17 14:21:48 -05:00
llvm-dis [llvm-dis] Fix the disable-output flag 2019-11-14 13:35:21 -08:00
llvm-dwarfdump Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-dwp [Mips] Use appropriate private label prefix based on Mips ABI 2019-10-23 12:24:35 +02:00
llvm-elfabi Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-exegesis Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-extract [llvm-extract] Update the help message for group extraction feature 2019-08-20 20:45:16 +00:00
llvm-go Bump llvm-go to C++14 2019-08-15 10:55:25 +00:00
llvm-ifs Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-isel-fuzzer Move CodeGenFileType enum to Support/CodeGen.h 2019-11-13 16:39:34 -08:00
llvm-itanium-demangle-fuzzer Fix file header issues in fuzzers. NFC 2019-02-21 07:57:14 +00:00
llvm-jitlink [ORC] Make ObjectLinkingLayer own its jitlink::MemoryManager. 2019-12-15 17:35:52 -08:00
llvm-jitlistener Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
llvm-link Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-lipo Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-lto Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-lto2 Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-mc Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-mc-assemble-fuzzer Remove AllTargetsAsmPrinters 2020-01-17 19:04:06 -05:00
llvm-mc-disassemble-fuzzer Remove AllTargetsAsmPrinters 2020-01-17 19:04:06 -05:00
llvm-mca Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-microsoft-demangle-fuzzer Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
llvm-ml Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-modextract Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
llvm-mt Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
llvm-nm Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-objcopy [llvm-objcopy] Initial support for wasm in llvm-objcopy 2020-01-29 17:32:02 -08:00
llvm-objdump Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-opt-fuzzer Sink all InitializePasses.h includes 2019-11-13 16:34:37 -08:00
llvm-opt-report Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-pdbutil Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-profdata Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-rc Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-readobj Make bugpoint work with gcc5 again. 2020-01-29 03:11:00 +01:00
llvm-reduce Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-rtdyld Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-shlib [cmake] Explicitly mark libraries defined in lib/ as "Component Libraries" 2019-11-21 10:48:08 -08:00
llvm-size [llvm-size] print a blank line between archieve members when using sysv format 2020-01-03 14:05:55 +08:00
llvm-special-case-list-fuzzer Update the file headers across all of the LLVM projects in the monorepo 2019-01-19 08:50:56 +00:00
llvm-split Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
llvm-stress [llvm] Migrate llvm::make_unique to std::make_unique 2019-08-15 15:54:37 +00:00
llvm-strings [binutils] Add response file option to help and docs 2019-06-21 11:49:20 +00:00
llvm-symbolizer [llvm-symbolizer]Fix printing of malformed address values not passed via stdin 2020-01-08 18:37:41 +08:00
llvm-undname Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-xray Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-yaml-numeric-parser-fuzzer Fix file header issues in fuzzers. NFC 2019-02-21 07:57:14 +00:00
lto [LTO][Legacy] Add API for passing LLVM options separately 2019-11-19 16:30:37 -08:00
msbuild vs integration: bump version nbr 2019-06-19 07:39:53 +00:00
obj2yaml Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
opt Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
opt-viewer [opt viewer] Python compat - decode/encode string 2020-01-29 14:49:24 -08:00
remarks-shlib [Remarks] Add parser for bitstream remarks 2019-09-09 17:43:50 +00:00
sancov [llvm] Replace SmallStr.str().str() with std::string conversion operator. 2020-01-29 21:16:46 -08:00
sanstats [DebugInfo] add SectionedAddress to DebugInfo interfaces. 2019-02-27 13:17:36 +00:00
verify-uselistorder Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
vfabi-demangle-fuzzer [llvm][VectorUtils] Tweak VFShape for scalable vector functions. 2020-01-30 05:53:56 +00:00
xcode-toolchain
yaml2obj [yaml2obj/ObjectYAML] - Cleanup the error reporting API, add custom errors handlers. 2019-09-13 16:00:16 +00:00
CMakeLists.txt Generalize the pass registration mechanism used by Polly to any third-party tool 2020-01-02 16:45:31 +01:00
LLVMBuild.txt [llvm-ifs][IFS] llvm Interface Stubs merging + object file generation tool. 2019-08-30 18:26:05 +00:00