summaryrefslogtreecommitdiffstats
path: root/llvm/tools/llvm-extract/llvm-extract.cpp
Commit message (Collapse)AuthorAgeFilesLines
...
* Add -rfunc and -rglob options to llvm-extract to support regularChad Rosier2011-09-161-6/+71
| | | | | | expression matching. llvm-svn: 139945
* Land the long talked about "type system rewrite" patch. ThisChris Lattner2011-07-091-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | patch brings numerous advantages to LLVM. One way to look at it is through diffstat: 109 files changed, 3005 insertions(+), 5906 deletions(-) Removing almost 3K lines of code is a good thing. Other advantages include: 1. Value::getType() is a simple load that can be CSE'd, not a mutating union-find operation. 2. Types a uniqued and never move once created, defining away PATypeHolder. 3. Structs can be "named" now, and their name is part of the identity that uniques them. This means that the compiler doesn't merge them structurally which makes the IR much less confusing. 4. Now that there is no way to get a cycle in a type graph without a named struct type, "upreferences" go away. 5. Type refinement is completely gone, which should make LTO much MUCH faster in some common cases with C++ code. 6. Types are now generally immutable, so we can use "Type *" instead "const Type *" everywhere. Downsides of this patch are that it removes some functions from the C API, so people using those will have to upgrade to (not yet added) new API. "LLVM 3.0" is the right time to do this. There are still some cleanups pending after this, this patch is large enough as-is. llvm-svn: 134829
* Merge System into Support.Michael J. Spencer2010-11-291-1/+1
| | | | llvm-svn: 120298
* Move tool_output_file into its own file.Dan Gohman2010-10-071-1/+1
| | | | llvm-svn: 115973
* Fix llvm-extract -delete's lazy loading to materialize the functions thatDan Gohman2010-09-231-7/+34
| | | | | | will not be deleted, rather than the ones that will. llvm-svn: 114614
* Make tool_output_file's raw_ostream instance a member variable insteadDan Gohman2010-09-011-3/+3
| | | | | | | | | | of a base class. This makes it possible to unregister the file from FilesToRemove when the file is done. Also, this eliminates the need for formatted_tool_output_file. llvm-svn: 112706
* Rewrite ExtractGV, removing a bunch of stuff that didn't fully work,Dan Gohman2010-08-261-5/+1
| | | | | | and was over-complicated, and replacing it with a simple implementation. llvm-svn: 112120
* Convert llvm-extract to use lazy loading. This makes it substantiallyDan Gohman2010-08-251-1/+14
| | | | | | faster on large modules. llvm-svn: 112110
* Use tool_output_file in llvm-extract and llvm-link too.Dan Gohman2010-08-201-7/+5
| | | | llvm-svn: 111604
* Don't register stdout to be deleted on a signal.Dan Gohman2010-08-181-1/+2
| | | | llvm-svn: 111368
* Preserve debug info for only extracted symbols.Devang Patel2010-07-011-0/+1
| | | | llvm-svn: 107417
* Trim #includes.Dan Gohman2010-03-241-1/+0
| | | | llvm-svn: 99416
* Add support to llvm-extract for extracting multiple functions and/orDan Gohman2010-02-101-23/+29
| | | | | | multiple global variables at a time. llvm-svn: 95825
* Fix llvm-extract's "writing bitcode to a terminal" warning, which wasn'tDan Gohman2009-09-111-16/+20
| | | | | | | | | | | | | | | working. To support this, add an is_displayed() function to raw_ostream, and generalize Process::StandardOutIsDisplayed and friends in order to support it. Also, call RemoveFileOnSignal before creating a file instead of after, so that the file isn't left behind if the program is interrupted between when the file is created and RemoveFileOnSignal is called. While here, add a -S to llvm-extract and port it to IRReader so that it supports assembly input. llvm-svn: 81568
* Make LLVM command-line tools overwrite their output files without -f.Dan Gohman2009-08-251-6/+6
| | | | | | | | | | | | | | | | This is conventional command-line tool behavior. -f now just means "enable binary output on terminals". Add a -f option to llvm-extract and llvm-link, for consistency. Remove F_Force from raw_fd_ostream and enable overwriting and truncating by default. Introduce an F_Excl flag to permit users to enable a failure when the file already exists. This flag is currently unused. Update Makefiles and documentation accordingly. llvm-svn: 79990
* simplify output file selection, fixing two FIXMEs about binary outputChris Lattner2009-08-231-19/+10
| | | | llvm-svn: 79808
* Change raw_fd_ostream to take flags as an optional bitmask Chris Lattner2009-08-231-2/+3
| | | | | | | | | | | | | | | | instead of as two bools. Use this to add a F_Append flag which has the obvious behavior. Other unrelated changes conflated into this patch: 1. REmove EH stuff from llvm-dis and llvm-as, the try blocks are dead. 2. Simplify the filename inference code in llvm-as/llvm-dis, because raw_fd_ostream does the right thing with '-'. 3. Switch machine verifier to use raw_ostream instead of ostream (Which is the thing that needed append in the first place). llvm-svn: 79807
* "-" should write to stdout, not stderr.Chris Lattner2009-08-181-3/+3
| | | | llvm-svn: 79310
* Convert more tools code from cerr and cout to errs() and outs().Dan Gohman2009-07-161-4/+4
| | | | llvm-svn: 76070
* To simplify the upcoming context-on-type change, switch all command line ↵Owen Anderson2009-07-151-1/+1
| | | | | | | | tools to using the default global context for now. This will let us to hardwire stuff to the global context in the short term while the API is sorted out. llvm-svn: 75846
* Add a Force option to raw_fd_ostream to specify whether openingDan Gohman2009-07-151-15/+14
| | | | | | | | an existing file is considered an error. Convert several tools to use raw_fd_ostream instead of std::ostream, and to use this new option instead of doing a manual check. llvm-svn: 75801
* Hold the LLVMContext by reference rather than by pointer.Owen Anderson2009-07-011-1/+1
| | | | llvm-svn: 74640
* Add a pointer to the owning LLVMContext to Module. This requires threading ↵Owen Anderson2009-07-011-2/+4
| | | | | | | | | | LLVMContext through a lot of the bitcode reader and ASM parser APIs, as well as supporting it in all of the tools. Patches for Clang and LLVM-GCC to follow. llvm-svn: 74614
* Use .empty() instead of .size().Dan Gohman2009-04-201-2/+2
| | | | llvm-svn: 69599
* Change various llvm utilities to use PrettyStackTraceProgram inChris Lattner2009-03-061-2/+6
| | | | | | | their main routines. This makes the tools print their argc/argv commands if they crash. llvm-svn: 66248
* only extract main if the user didn't specify anything to extractAndrew Lenharth2008-03-071-1/+1
| | | | llvm-svn: 48023
* make error message reflect default search function nameAndrew Lenharth2008-03-071-3/+2
| | | | llvm-svn: 48021
* add a pass that can extract all kinds of global values, not just functions. ↵Andrew Lenharth2008-03-071-7/+23
| | | | | | Update llvm-extract to use it and optionally extract a global variable if you want it too llvm-svn: 48015
* remove attributions from tools.Chris Lattner2007-12-291-2/+2
| | | | llvm-svn: 45421
* Move the space in overview output for commands out of each of theDan Gohman2007-10-081-1/+1
| | | | | | commands and into the common code. llvm-svn: 42752
* Separate program name from error message with a :Reid Spencer2007-08-081-1/+1
| | | | llvm-svn: 40945
* Terminate an error message with a newline.Reid Spencer2007-08-081-1/+1
| | | | llvm-svn: 40943
* Here is the bulk of the sanitizing.Gabor Greif2007-07-051-2/+2
| | | | | | Almost all occurrences of "bytecode" in the sources have been eliminated. llvm-svn: 37913
* use the new MemoryBuffer interfaces to simplify error reporting in clients.Chris Lattner2007-05-061-2/+1
| | | | llvm-svn: 36900
* switch tools to bitcode instead of bytecodeChris Lattner2007-05-061-23/+8
| | | | llvm-svn: 36868
* remove EH cruft, add bitcode supportChris Lattner2007-05-061-54/+69
| | | | llvm-svn: 36841
* push bytecode decompressor out through APIs. Now the bytecode readerChris Lattner2007-02-071-1/+3
| | | | | | | | | | | | | | | | | | | | api's look like this: ModuleProvider *getBytecodeModuleProvider( const std::string &Filename, ///< Name of file to be read BCDecompressor_t *BCDC = Compressor::decompressToNewBuffer, std::string* ErrMsg = 0, ///< Optional error message holder BytecodeHandler* H = 0 ///< Optional handler for reader events ); This is ugly, but allows a client to say: getBytecodeModuleProvider("foo", 0); If they do this, there is no dependency on the compression libraries, saving codesize. llvm-svn: 34012
* For PR411:Reid Spencer2007-02-051-1/+2
| | | | | | | Change getNamedFunction -> getFunction Make llvm-extract run the StripDeadPrototypes pass. llvm-svn: 33921
* For PR411:Reid Spencer2007-02-051-1/+0
| | | | | | | | | | This patch replaces the SymbolTable class with ValueSymbolTable which does not support types planes. This means that all symbol names in LLVM must now be unique. The patch addresses the necessary changes to deal with this and removes code no longer needed as a result. This completes the bulk of the changes for this PR. Some cleanup patches will follow. llvm-svn: 33918
* Propagate changes from my local tree. This patch includes:Anton Korobeynikov2007-01-281-2/+7
| | | | | | | | | | | | | | | | | | | | | | 1. New parameter attribute called 'inreg'. It has meaning "place this parameter in registers, if possible". This is some generalization of gcc's regparm(n) attribute. It's currently used only in X86-32 backend. 2. Completely rewritten CC handling/lowering code inside X86 backend. Merged stdcall + c CCs and fastcall + fast CC. 3. Dropped CSRET CC. We cannot add struct return variant for each target-specific CC (e.g. stdcall + csretcc and so on). 4. Instead of CSRET CC introduced 'sret' parameter attribute. Setting in on first attribute has meaning 'This is hidden pointer to structure return. Handle it gently'. 5. Fixed small bug in llvm-extract + add new feature to FunctionExtraction pass, which relinks all internal-linkaged callees from deleted function to external linkage. This will allow further linking everything together. NOTEs: 1. Documentation will be updated soon. 2. llvm-upgrade should be improved to translate csret => sret. Before this, there will be some unexpected test fails. llvm-svn: 33597
* Changed llvm_ostream et all to OStream. llvm_cerr, llvm_cout, llvm_null, areBill Wendling2006-12-071-9/+9
| | | | | | now cerr, cout, and NullStream resp. llvm-svn: 32298
* make all llvm tools call llvm_shutdown when they exit, static'ify some stuff.Chris Lattner2006-12-061-0/+2
| | | | | | With this change, I can now move -stats to print when llvm_shutdown is called. llvm-svn: 32250
* Replacing std::iostreams with llvm iostreams. Some of these changes involveBill Wendling2006-11-291-6/+9
| | | | | | | adding a temporary wrapper around the ostream to make it friendly to functions expecting an LLVM stream. This should be fixed in the future. llvm-svn: 31990
* Don't pass target name into TargetData anymore, it is never used or needed.Chris Lattner2006-06-161-1/+1
| | | | llvm-svn: 28831
* extract has been renamed to llvm-extract to avoid conflicting with another toolMisha Brukman2005-04-241-0/+106
llvm-svn: 21498
OpenPOWER on IntegriCloud