llvm-project/llvm/tools
Eli Friedman 4532a50899 Infer alignment of unmarked loads in IR/bitcode parsing.
For IR generated by a compiler, this is really simple: you just take the
datalayout from the beginning of the file, and apply it to all the IR
later in the file. For optimization testcases that don't care about the
datalayout, this is also really simple: we just use the default
datalayout.

The complexity here comes from the fact that some LLVM tools allow
overriding the datalayout: some tools have an explicit flag for this,
some tools will infer a datalayout based on the code generation target.
Supporting this properly required plumbing through a bunch of new
machinery: we want to allow overriding the datalayout after the
datalayout is parsed from the file, but before we use any information
from it. Therefore, IR/bitcode parsing now has a callback to allow tools
to compute the datalayout at the appropriate time.

Not sure if I covered all the LLVM tools that want to use the callback.
(clang? lli? Misc IR manipulation tools like llvm-link?). But this is at
least enough for all the LLVM regression tests, and IR without a
datalayout is not something frontends should generate.

This change had some sort of weird effects for certain CodeGen
regression tests: if the datalayout is overridden with a datalayout with
a different program or stack address space, we now parse IR based on the
overridden datalayout, instead of the one written in the file (or the
default one, if none is specified). This broke a few AVR tests, and one
AMDGPU test.

Outside the CodeGen tests I mentioned, the test changes are all just
fixing CHECK lines and moving around datalayout lines in weird places.

Differential Revision: https://reviews.llvm.org/D78403
2020-05-14 13:03:50 -07:00
..
bugpoint Update compiler extension integration into the build system 2020-04-24 09:40:14 +02:00
bugpoint-passes Reverted the remainings of c1c9819ef9 2020-02-11 16:20:06 -08:00
dsymutil [dsymutil] Add option to print statistics about the .debug_info size. 2020-05-06 19:48:45 -07:00
gold [LTO] Suppress emission of empty combined module by default 2020-05-04 18:31:09 -07:00
llc Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
lli [ORC] Rename SearchOrder operations on JITDylib to LinkOrder. 2020-05-04 16:47:52 -07:00
llvm-ar [llvm-ar] Use target triple to deduce archive kind for bitcode inputs 2020-03-20 13:19:44 -07:00
llvm-as Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
llvm-as-fuzzer
llvm-bcanalyzer Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
llvm-c-test [SVE] Add new VectorType subclasses 2020-04-22 08:59:01 -07: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 Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
llvm-config Update compiler extension integration into the build system 2020-04-24 09:40:14 +02:00
llvm-cov [gcov] Implement --stdout -t 2020-05-10 21:02:38 -07:00
llvm-cvtres
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 [IR] Replace all uses of CallBase::getCalledValue() with getCalledOperand(). 2020-04-27 22:17:03 -07:00
llvm-dis [llvm-dis] Fix the disable-output flag 2019-11-14 13:35:21 -08:00
llvm-dwarfdump [llvm-dwarfdump] Make commandline arguments consistent. 2020-05-14 17:34:50 +08:00
llvm-dwp [llvm-dwp] Refuse DWARFv5 input DWP files. 2020-04-25 18:59:41 +07:00
llvm-elfabi Revert "Remove redundant "std::move"s in return statements" 2020-02-10 07:07:40 -08:00
llvm-exegesis Don't stash types that aren't copyable or moveable into a SmallVector 2020-05-02 19:13:06 +02:00
llvm-extract [llvm-extract] Add -keep-const-init commandline option 2020-02-03 14:30:28 +09:00
llvm-go Reinstate llvm-go to test the go bindings. 2020-02-13 17:24:55 -08:00
llvm-gsymutil Fix GSYM tests to run the yaml files and fix test failures on some machines. 2020-03-04 19:14:08 -08:00
llvm-ifs [llvm][clang][IFS] Enhancing the llvm-ifs yaml format for symbol lists. 2020-04-01 10:49:06 -04:00
llvm-isel-fuzzer Replace MCTargetOptionsCommandFlags.inc and CommandFlags.inc by runtime registration 2020-03-17 14:01:30 +01:00
llvm-itanium-demangle-fuzzer
llvm-jitlink [ORC] Rename SearchOrder operations on JITDylib to LinkOrder. 2020-05-04 16:47:52 -07:00
llvm-jitlistener
llvm-link [ThinLTO] Drop dso_local if a GlobalVariable satisfies isDeclarationForLinker() 2020-04-07 15:46:01 -07:00
llvm-lipo Suppress a few -Wunreachable-code warnings. 2020-03-25 13:55:42 -04:00
llvm-lto Replace MCTargetOptionsCommandFlags.inc and CommandFlags.inc by runtime registration 2020-03-17 14:01:30 +01:00
llvm-lto2 Enable new passmanager plugin support for LTO. 2020-04-14 15:07:07 -07:00
llvm-mc Replace MCTargetOptionsCommandFlags.inc and CommandFlags.inc by runtime registration 2020-03-17 14:01:30 +01:00
llvm-mc-assemble-fuzzer Replace MCTargetOptionsCommandFlags.inc and CommandFlags.inc by runtime registration 2020-03-17 14:01:30 +01:00
llvm-mc-disassemble-fuzzer Remove AllTargetsAsmPrinters 2020-01-17 19:04:06 -05:00
llvm-mca Replace MCTargetOptionsCommandFlags.inc and CommandFlags.inc by runtime registration 2020-03-17 14:01:30 +01:00
llvm-microsoft-demangle-fuzzer
llvm-ml Replace MCTargetOptionsCommandFlags.inc and CommandFlags.inc by runtime registration 2020-03-17 14:01:30 +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
llvm-nm [llvm-nm/objdump/size] Add tests for dumping symbol tables with invalid sh_size. 2020-05-06 17:01:20 +08:00
llvm-objcopy [COFF] Migrate COFFObjectFile to Expected<T> 2020-05-08 14:01:39 -07:00
llvm-objdump [COFF] Migrate COFFObjectFile to Expected<T> 2020-05-08 14:01:39 -07:00
llvm-opt-fuzzer Replace MCTargetOptionsCommandFlags.inc and CommandFlags.inc by runtime registration 2020-03-17 14:01:30 +01:00
llvm-opt-report Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-pdbutil Use std::foo_t rather than std::foo in LLVM. 2020-02-11 15:12:51 -08:00
llvm-profdata [SampleFDO] Rename llvm-profdata flag -partial-profile to -gen-partial-profile. 2020-05-12 15:06:03 -07:00
llvm-rc std::isspace -> llvm::isSpace (where locale should be ignored) 2020-05-02 15:36:04 +02:00
llvm-readobj [COFF] Migrate COFFObjectFile to Expected<T> 2020-05-08 14:01:39 -07:00
llvm-reduce Revert "[llvm-reduce] add ReduceAttribute delta pass" 2020-02-05 14:15:11 -05:00
llvm-rtdyld Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-shlib Revert "Temporarily revert "build: use `find_package(Python3)` if available"" 2020-04-29 01:38:08 +00:00
llvm-size [llvm-nm/objdump/size] Add tests for dumping symbol tables with invalid sh_size. 2020-05-06 17:01:20 +08:00
llvm-special-case-list-fuzzer
llvm-split Rename F_{None,Text,Append} to OF_{None,Text,Append}. NFC 2019-08-05 05:43:48 +00:00
llvm-stress [llvm-stress][opaque pointers] Remove use of deprecated constructor 2020-04-03 18:00:33 -07:00
llvm-strings
llvm-symbolizer [NativeSession] Implement NativeSession::findSymbolByAddress. 2020-05-13 09:39:25 -07:00
llvm-undname Make llvm::StringRef to std::string conversions explicit. 2020-01-28 23:25:25 +01:00
llvm-xray [XRay] Change Sled.Function to PC-relative for sled version 2 and make llvm-xray support sled version 2 addresses 2020-04-24 14:41:56 -07:00
llvm-yaml-numeric-parser-fuzzer
lto Replace MCTargetOptionsCommandFlags.inc and CommandFlags.inc by runtime registration 2020-03-17 14:01:30 +01:00
msbuild
obj2yaml Fix buildbots errors after comitting D78782. 2020-05-13 22:01:57 -07:00
opt Infer alignment of unmarked loads in IR/bitcode parsing. 2020-05-14 13:03:50 -07:00
opt-viewer Convert old python3 cgi method into the new html one 2020-03-25 22:38:55 +01:00
remarks-shlib [Remarks] Add parser for bitstream remarks 2019-09-09 17:43:50 +00:00
sancov [Object] Change uint32_t getSymbolFlags() to Expected<uint32_t> getSymbolFlags(). 2020-04-18 21:27:57 +08:00
sanstats
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] Add -D k=v to preprocess the input YAML 2020-02-07 09:35:00 -08:00
CMakeLists.txt [Flang] add flang as a new subproject in cmake 2020-04-09 16:13:18 +01:00
LLVMBuild.txt [llvm-ifs][IFS] llvm Interface Stubs merging + object file generation tool. 2019-08-30 18:26:05 +00:00