#
65c01201 |
| 14-Jan-2016 |
Michael Zolotukhin <mzolotukhin@apple.com> |
Revert "Assert that we have all use/users in the getters."
This reverts commit fdb838f3f8a8b6896bbbd5285555874eb3b748eb.
llvm-svn: 257751
|
#
e01e363f |
| 19-Dec-2015 |
Rafael Espindola <rafael.espindola@gmail.com> |
Assert that we have all use/users in the getters.
An error that is pretty easy to make is to use the lazy bitcode reader and then do something like
if (V.use_empty())
The problem is that uses in u
Assert that we have all use/users in the getters.
An error that is pretty easy to make is to use the lazy bitcode reader and then do something like
if (V.use_empty())
The problem is that uses in unmaterialized functions are not accounted for.
This patch adds asserts that all uses are known.
llvm-svn: 256105
show more ...
|
#
1ea4efb4 |
| 18-Dec-2015 |
Rafael Espindola <rafael.espindola@gmail.com> |
Delete dead code: only functions are materializable.
llvm-svn: 256052
|
#
be2cfb26 |
| 18-Dec-2015 |
Rafael Espindola <rafael.espindola@gmail.com> |
Use a lambda to reduce code duplication.
llvm-svn: 256050
|
Revision tags: llvmorg-3.7.1, llvmorg-3.7.1-rc2, llvmorg-3.7.1-rc1, llvmorg-3.7.0, llvmorg-3.7.0-rc4, llvmorg-3.7.0-rc3, studio-1.4, llvmorg-3.7.0-rc2, llvmorg-3.7.0-rc1, llvmorg-3.6.2, llvmorg-3.6.2-rc1, llvmorg-3.6.1, llvmorg-3.6.1-rc1 |
|
#
8a7b84b4 |
| 15-Apr-2015 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
uselistorder: Remove the global bits
Remove all the global bits to do with preserving use-list order by moving the `cl::opt`s to the individual tools that want them. There's a minor functionality c
uselistorder: Remove the global bits
Remove all the global bits to do with preserving use-list order by moving the `cl::opt`s to the individual tools that want them. There's a minor functionality change to `libLTO`, in that you can't send in `-preserve-bc-uselistorder=false`, but making that bit settable (if it's worth doing) should be through explicit LTO API.
As a drive-by fix, I removed some includes of `UseListOrder.h` that were made unnecessary by recent commits.
llvm-svn: 234973
show more ...
|
#
8a74f684 |
| 15-Apr-2015 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
uselistorder: Pull the bit through PrintModulePass
Now the callers of `PrintModulePass()` (etc.) that care about use-list order in assembly pass in the flag.
llvm-svn: 234969
|
#
679db334 |
| 15-Apr-2015 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
uselistorder: Pull bit through BitcodeWriterPass
Now the callers of `BitcodeWriterPass` decide whether or not to preserve bitcode use-list order.
llvm-svn: 234959
|
#
c55dee1c |
| 14-Apr-2015 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
IR: Set -preserve-bc-uselistorder=false by default
But keep it on by default in `llvm-as`, `opt`, `bugpoint`, `llvm-link`, `llvm-extract`, and `LTOCodeGenerator`. Part of PR5680.
llvm-svn: 234921
|
Revision tags: llvmorg-3.5.2, llvmorg-3.5.2-rc1 |
|
#
46a43556 |
| 04-Mar-2015 |
Mehdi Amini <mehdi.amini@apple.com> |
Make DataLayout Non-Optional in the Module
Summary: DataLayout keeps the string used for its creation.
As a side effect it is no longer needed in the Module. This is "almost" NFC, the string is no
Make DataLayout Non-Optional in the Module
Summary: DataLayout keeps the string used for its creation.
As a side effect it is no longer needed in the Module. This is "almost" NFC, the string is no longer canonicalized, you can't rely on two "equals" DataLayout having the same string returned by getStringRepresentation().
Get rid of DataLayoutPass: the DataLayout is in the Module
The DataLayout is "per-module", let's enforce this by not duplicating it more than necessary. One more step toward non-optionality of the DataLayout in the module.
Make DataLayout Non-Optional in the Module
Module->getDataLayout() will never returns nullptr anymore.
Reviewers: echristo
Subscribers: resistor, llvm-commits, jholewinski
Differential Revision: http://reviews.llvm.org/D7992
From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 231270
show more ...
|
Revision tags: llvmorg-3.6.0, llvmorg-3.6.0-rc4 |
|
#
30d69c2e |
| 13-Feb-2015 |
Chandler Carruth <chandlerc@gmail.com> |
[PM] Remove the old 'PassManager.h' header file at the top level of LLVM's include tree and the use of using declarations to hide the 'legacy' namespace for the old pass manager.
This undoes the pri
[PM] Remove the old 'PassManager.h' header file at the top level of LLVM's include tree and the use of using declarations to hide the 'legacy' namespace for the old pass manager.
This undoes the primary modules-hostile change I made to keep out-of-tree targets building. I sent an email inquiring about whether this would be reasonable to do at this phase and people seemed fine with it, so making it a reality. This should allow us to start bootstrapping with modules to a certain extent along with making it easier to mix and match headers in general.
The updates to any code for users of LLVM are very mechanical. Switch from including "llvm/PassManager.h" to "llvm/IR/LegacyPassManager.h". Qualify the types which now produce compile errors with "legacy::". The most common ones are "PassManager", "PassManagerBase", and "FunctionPassManager".
llvm-svn: 229094
show more ...
|
Revision tags: llvmorg-3.6.0-rc3, llvmorg-3.6.0-rc2, llvmorg-3.6.0-rc1, llvmorg-3.5.1, llvmorg-3.5.1-rc2, llvmorg-3.5.1-rc1 |
|
#
246c4fb5 |
| 01-Nov-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Remove redundant calls to isMaterializable.
This removes calls to isMaterializable in the following cases:
* It was redundant with a call to isDeclaration now that isDeclaration returns the corre
Remove redundant calls to isMaterializable.
This removes calls to isMaterializable in the following cases:
* It was redundant with a call to isDeclaration now that isDeclaration returns the correct answer for materializable functions. * It was followed by a call to Materialize. Just call Materialize and check EC.
llvm-svn: 221050
show more ...
|
#
5a52e6dc |
| 24-Oct-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Modernize the error handling of the Materialize function.
llvm-svn: 220600
|
#
c435adcd |
| 10-Sep-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add doInitialization/doFinalization to DataLayoutPass.
With this a DataLayoutPass can be reused for multiple modules.
Once we have doInitialization/doFinalization, it doesn't seem necessary to pass
Add doInitialization/doFinalization to DataLayoutPass.
With this a DataLayoutPass can be reused for multiple modules.
Once we have doInitialization/doFinalization, it doesn't seem necessary to pass a Module to the constructor.
Overall this change seems in line with the idea of making DataLayout a required part of Module. With it the only way of having a DataLayout used is to add it to the Module.
llvm-svn: 217548
show more ...
|
Revision tags: llvmorg-3.5.0, llvmorg-3.5.0-rc4 |
|
#
d233b06a |
| 26-Aug-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Return a std::unique_ptr from the IRReader.h functions. NFC.
llvm-svn: 216466
|
#
3fd1e993 |
| 25-Aug-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Modernize raw_fd_ostream's constructor a bit.
Take a StringRef instead of a "const char *". Take a "std::error_code &" instead of a "std::string &" for error.
A create static method would be even b
Modernize raw_fd_ostream's constructor a bit.
Take a StringRef instead of a "const char *". Take a "std::error_code &" instead of a "std::string &" for error.
A create static method would be even better, but this patch is already a bit too big.
llvm-svn: 216393
show more ...
|
Revision tags: llvmorg-3.5.0-rc3, llvmorg-3.5.0-rc2, llvmorg-3.5.0-rc1, llvmorg-3.4.2, llvmorg-3.4.2-rc1 |
|
#
bfe44e1d |
| 08-May-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Use range loops.
llvm-svn: 208353
|
#
d59664f4 |
| 29-Apr-2014 |
Benjamin Kramer <benny.kra@googlemail.com> |
raw_ostream: Forward declare OpenFlags and include FileSystem.h only where necessary.
llvm-svn: 207593
|
Revision tags: llvmorg-3.4.1, llvmorg-3.4.1-rc2 |
|
#
e6cb63e4 |
| 25-Apr-2014 |
Craig Topper <craig.topper@gmail.com> |
[C++] Use 'nullptr'. Tools edition.
llvm-svn: 207176
|
Revision tags: llvmorg-3.4.1-rc1 |
|
#
56440fd8 |
| 06-Mar-2014 |
Ahmed Charles <ahmedcharles@gmail.com> |
Replace OwningPtr<T> with std::unique_ptr<T>.
This compiles with no changes to clang/lld/lldb with MSVC and includes overloads to various functions which are used by those projects and llvm which ha
Replace OwningPtr<T> with std::unique_ptr<T>.
This compiles with no changes to clang/lld/lldb with MSVC and includes overloads to various functions which are used by those projects and llvm which have OwningPtr's as parameters. This should allow out of tree projects some time to move. There are also no changes to libs/Target, which should help out of tree targets have time to move, if necessary.
llvm-svn: 203083
show more ...
|
#
93512512 |
| 25-Feb-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Make DataLayout a plain object, not a pass.
Instead, have a DataLayoutPass that holds one. This will allow parts of LLVM don't don't handle passes to also use DataLayout.
llvm-svn: 202168
|
#
90c7f1cc |
| 24-Feb-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Replace the F_Binary flag with a F_Text one.
After this I will set the default back to F_None. The advantage is that before this patch forgetting to set F_Binary would corrupt a file on windows. For
Replace the F_Binary flag with a F_Text one.
After this I will set the default back to F_None. The advantage is that before this patch forgetting to set F_Binary would corrupt a file on windows. Forgetting to set F_Text produces one that cannot be read in notepad, which is a better failure mode :-)
llvm-svn: 202052
show more ...
|
#
b7bdfd65 |
| 13-Jan-2014 |
Chandler Carruth <chandlerc@gmail.com> |
[PM] Wire up support for writing bitcode with new PM.
This moves the old pass creation functionality to its own header and updates the callers of that routine. Then it adds a new PM supporting bitco
[PM] Wire up support for writing bitcode with new PM.
This moves the old pass creation functionality to its own header and updates the callers of that routine. Then it adds a new PM supporting bitcode writer to the header file, and wires that up in the opt tool. A test is added that round-trips code into bitcode and back out using the new pass manager.
llvm-svn: 199078
show more ...
|
#
9d805139 |
| 12-Jan-2014 |
Chandler Carruth <chandlerc@gmail.com> |
[PM] Simplify the interface exposed for IR printing passes.
Nothing was using the ability of the pass to delete the raw_ostream it printed to, and nothing was trying to pass it a pointer to the raw_
[PM] Simplify the interface exposed for IR printing passes.
Nothing was using the ability of the pass to delete the raw_ostream it printed to, and nothing was trying to pass it a pointer to the raw_ostream. Also, the function variant had a different order of arguments from all of the others which was just really confusing. Now the interface accepts a reference, doesn't offer to delete it, and uses a consistent order. The implementation of the printing passes haven't been updated with this simplification, this is just the API switch.
llvm-svn: 199044
show more ...
|
#
b8ddc704 |
| 12-Jan-2014 |
Chandler Carruth <chandlerc@gmail.com> |
[PM] Rename the IR printing pass header to a more generic and correct name to match the source file which I got earlier. Update the include sites. Also modernize the comments in the header to use the
[PM] Rename the IR printing pass header to a more generic and correct name to match the source file which I got earlier. Update the include sites. Also modernize the comments in the header to use the more recommended doxygen style.
llvm-svn: 199041
show more ...
|
#
9aca918d |
| 07-Jan-2014 |
Chandler Carruth <chandlerc@gmail.com> |
Move the LLVM IR asm writer header files into the IR directory, as they are part of the core IR library in order to support dumping and other basic functionality.
Rename the 'Assembly' include direc
Move the LLVM IR asm writer header files into the IR directory, as they are part of the core IR library in order to support dumping and other basic functionality.
Rename the 'Assembly' include directory to 'AsmParser' to match the library name and the only functionality left their -- printing has been in the core IR library for quite some time.
Update all of the #includes to match.
All of this started because I wanted to have the layering in good shape before I started adding support for printing LLVM IR using the new pass infrastructure, and commandline support for the new pass infrastructure.
llvm-svn: 198688
show more ...
|