From 1f66c856b54e32e6590d1333fc8a60d56979edb8 Mon Sep 17 00:00:00 2001 From: "Duncan P. N. Exon Smith" Date: Mon, 28 Jul 2014 21:19:41 +0000 Subject: Bitcode: Serialize (and recover) use-list order Predict and serialize use-list order in bitcode. This makes the option `-preserve-bc-use-list-order` work *most* of the time, but this is still experimental. - Builds a full value-table up front in the writer, sets up a list of use-list orders to write out, and discards the table. This is a simpler first step than determining the order from the various overlapping IDs of values on-the-fly. - The shuffles stored in the use-list order list have an unnecessarily large memory footprint. - `blockaddress` expressions cause functions to be materialized out-of-order. For now I've ignored this problem, so use-list orders will be wrong for constants used by functions that have block addresses taken. There are a couple of ways to fix this, but I don't have a concrete plan yet. - When materializing functions lazily, the use-lists for constants will not be correct. This use case is out of scope: what should the use-list order be, if it's incomplete? This is part of PR5680. llvm-svn: 214125 --- llvm/lib/Bitcode/Reader/BitcodeReader.h | 1 - 1 file changed, 1 deletion(-) (limited to 'llvm/lib/Bitcode/Reader/BitcodeReader.h') diff --git a/llvm/lib/Bitcode/Reader/BitcodeReader.h b/llvm/lib/Bitcode/Reader/BitcodeReader.h index 1d4869a..d27a3ef 100644 --- a/llvm/lib/Bitcode/Reader/BitcodeReader.h +++ b/llvm/lib/Bitcode/Reader/BitcodeReader.h @@ -138,7 +138,6 @@ class BitcodeReader : public GVMaterializer { BitcodeReaderMDValueList MDValueList; std::vector ComdatList; SmallVector InstructionList; - SmallVector, 64> UseListRecords; std::vector > GlobalInits; std::vector > AliasInits; -- cgit v1.1