llvm-project/llvm/tools
Chandler Carruth 0fde00150d Move the CodeExtractor utility to a dedicated header file / source file,
and expose it as a utility class rather than as free function wrappers.

The simple free-function interface works well for the bugpoint-specific
pass's uses of code extraction, but in an upcoming patch for more
advanced code extraction, they simply don't expose a rich enough
interface. I need to expose various stages of the process of doing the
code extraction and query information to decide whether or not to
actually complete the extraction or give up.

Rather than build up a new predicate model and pass that into these
functions, just take the class that was actually implementing the
functions and lift it up into a proper interface that can be used to
perform code extraction. The interface is cleaned up and re-documented
to work better in a header. It also is now setup to accept the blocks to
be extracted in the constructor rather than in a method.

In passing this essentially reverts my previous commit here exposing
a block-level query for eligibility of extraction. That is no longer
necessary with the more rich interface as clients can query the
extraction object for eligibility directly. This will reduce the number
of walks of the input basic block sequence by quite a bit which is
useful if this enters the normal optimization pipeline.

llvm-svn: 156163
2012-05-04 10:18:49 +00:00
..
bugpoint Move the CodeExtractor utility to a dedicated header file / source file, 2012-05-04 10:18:49 +00:00
bugpoint-passes build: Tidy up a bunch of tool Makefiles, and simplify where possible using the 2011-10-18 19:27:24 +00:00
gold drop unneeded config.h includes 2011-12-22 23:04:07 +00:00
llc Move the JIT flags from llc to lli. These flags showed up as part of moving 2012-04-18 08:34:12 +00:00
lli Remove redundant line (the memory manager is set above to the same object 2012-04-29 11:14:59 +00:00
llvm-ar LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
llvm-as LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
llvm-bcanalyzer fix PR12301 - llvm-bcanalyze should print to stdout, not stderr (except for errors). 2012-03-19 23:40:48 +00:00
llvm-config An easy case where GCC should really be able to work out that the value is only 2012-02-23 08:25:25 +00:00
llvm-cov LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
llvm-diff llvm::SwitchInst 2012-03-11 06:09:17 +00:00
llvm-dis Enable streaming of bitcode 2012-02-06 22:30:29 +00:00
llvm-dwarfdump LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
llvm-extract Remove extraneous ".get()->" which is just "->". No functionality change. 2011-12-30 19:17:23 +00:00
llvm-link LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
llvm-mc Add -disassemble support for -show-inst and -show-encode capability llvm-mc. Also refactor so all MC paraphernalia are created once for all uses as much as possible. 2012-04-16 11:32:10 +00:00
llvm-nm Fix uses of the C99 PRI format macros not to conflict with C++11 UDLs. 2012-03-10 02:04:38 +00:00
llvm-objdump PR12729: Change 'llvm-objdump' to display the available targets. 2012-05-03 23:20:10 +00:00
llvm-prof LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
llvm-ranlib LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
llvm-readobj Fix uses of the C99 PRI format macros not to conflict with C++11 UDLs. 2012-03-10 02:04:38 +00:00
llvm-rtdyld Re-factored RuntimeDyLd: 2012-03-30 16:45:19 +00:00
llvm-shlib openbsd doesn't support soname, patch by Brad Smith! 2012-04-25 06:37:20 +00:00
llvm-size LLVMBuild: Remove trailing newline, which irked me. 2011-12-12 19:48:00 +00:00
llvm-stress Do not convert between fp128 <-> ppc_fp128 since there is no legal cast conversion between the two. 2012-04-15 20:17:14 +00:00
lto Remove lto_codegen_set_whole_program_optimization. It is a work in progress, 2012-04-16 10:58:38 +00:00
macho-dump DumpSegment64Command() wasn't returning correct result. Caught by static analyzer. rdar://11329354 2012-04-26 22:07:28 +00:00
opt allow opt to take a -mtriple option 2012-04-17 23:05:48 +00:00
CMakeLists.txt [CMake] Restructure how Clang, Polly and other external projects get included. 2012-04-26 19:43:35 +00:00
LLVMBuild.txt Remove llvm-ld and llvm-stub (which is only used by llvm-ld). 2012-04-19 19:27:54 +00:00
Makefile Remove llvm-ld and llvm-stub (which is only used by llvm-ld). 2012-04-19 19:27:54 +00:00