hanchenye-llvm-project/llvm/tools
Hal Finkel e9efbf140b Fix invalid function pointers in bugpoint ExtractLoops
The ExtractLoops function tries to reduce the failing test case by extracting
one or more loops from the misoptimized piece of the program. In doing this,
ExtractLoops must keep the MiscompiledFunctions vector up-to-date by ensuring
that the pointers refer to functions in the current failing program.
Unfortunately, this is not trivial because:

 - ExtractLoops is iterative, and there are several early exits (and the
   MiscompiledFunctions vector must be consistent with the current program at
every non-fatal exit point).
 - Several of the utility functions used by ExtractLoops (such as
   TestOptimizer, some of which are called through the TestFn callback
parameter, and Linker::LinkModules) delete their inputs upon success.

This change adds several updates of the MiscompiledFunctions vector at
different points. The first is after the initial call to TestMergedProgram
which checks that the loop-extracted program still works. The second is after
the call to TestFn (TestOptimizer, for example). This function will delete its
inputs (which is why the existing ExtractLoops logic cloned the inputs first).

llvm-svn: 187674
2013-08-02 21:13:42 +00:00
..
bugpoint Fix invalid function pointers in bugpoint ExtractLoops 2013-08-02 21:13:42 +00:00
bugpoint-passes [CMake] bugpoint-passes should not be built in "all", when LLVM_BUILD_TOOLS is OFF. 2013-01-22 01:44:00 +00:00
gold Split getOpenFile into getOpenFile and getOpenFileSlice. 2013-07-23 20:25:01 +00:00
llc Use function attributes to indicate that we don't want to realign the stack. 2013-08-01 21:42:05 +00:00
lli Add flag to lli to enable debugging of IR when used with MCJIT. 2013-06-28 19:11:40 +00:00
llvm-ar Add support for the 's' operation to llvm-ar. 2013-07-29 12:40:31 +00:00
llvm-as Add a wrapper for open. 2013-07-16 19:44:17 +00:00
llvm-bcanalyzer keep only the StringRef version of getFileOrSTDIN. 2013-06-25 05:28:34 +00:00
llvm-config Remove unused includes. 2013-06-26 13:54:34 +00:00
llvm-cov Remove accidental commit. 2012-11-07 18:39:32 +00:00
llvm-diff Manually update the dependencies in the Makefiles. It turns out that all 2013-03-26 03:45:47 +00:00
llvm-dis Add a wrapper for open. 2013-07-16 19:44:17 +00:00
llvm-dwarfdump llvm-dwarfdump: Add support for dumping the .debug_loc section 2013-06-19 21:37:13 +00:00
llvm-extract Add a wrapper for open. 2013-07-16 19:44:17 +00:00
llvm-jitlistener Manually update the dependencies in the Makefiles. It turns out that all 2013-03-26 03:45:47 +00:00
llvm-link Add a wrapper for open. 2013-07-16 19:44:17 +00:00
llvm-mc Improve llvm-mc disassembler mode and refactor ARM tests to use it 2013-07-19 10:05:04 +00:00
llvm-mcmarkup MC: Simple example parser for MC assembly markup. 2012-10-31 23:24:13 +00:00
llvm-nm Don't crash in 'llvm -s' when an archive has no symtab. 2013-07-10 20:14:22 +00:00
llvm-objdump keep only the StringRef version of getFileOrSTDIN. 2013-06-25 05:28:34 +00:00
llvm-prof Move all of the header files which are involved in modelling the LLVM IR 2013-01-02 11:36:10 +00:00
llvm-readobj Remove the mblaze backend from llvm. 2013-07-25 18:55:05 +00:00
llvm-rtdyld Minor changes to the MCJITTest unittests to use the correct API for finalizing 2013-05-17 10:01:46 +00:00
llvm-shlib Use @rpath for libraries rather than @executable_path on OSX. 2013-08-02 01:51:52 +00:00
llvm-size Sort the #include lines for tools/... 2012-12-04 10:44:52 +00:00
llvm-stress Add a wrapper for open. 2013-07-16 19:44:17 +00:00
llvm-symbolizer LLVMSymbolize.cpp: Fix build. Triple::ArchType is not a namespace. 2013-07-17 06:53:51 +00:00
lto Use @rpath for libraries rather than @executable_path on OSX. 2013-08-02 01:51:52 +00:00
macho-dump Teach llvm-objdump with the -macho parser how to use the data in code table 2013-06-06 17:20:50 +00:00
obj2yaml Don't link with the archive library programs that don't use it. 2013-06-17 15:29:46 +00:00
opt Use function attributes to indicate that we don't want to realign the stack. 2013-08-01 21:42:05 +00:00
yaml2obj [yaml2obj][ELF] Make symbol table top-level key. 2013-06-22 01:38:00 +00:00
CMakeLists.txt Provide bootstrap support to build only llvm+clang when using cmake. 2013-06-26 08:05:08 +00:00
LLVMBuild.txt Remove the LLVM specific archive index. 2013-06-14 23:25:53 +00:00
Makefile Remove the LLVM specific archive index. 2013-06-14 23:25:53 +00:00