Adam Nemet
55f24b0567
[LTOs] Allow generation of hotness information
...
The flag is passed by the clang driver.
Differential Revision: https://reviews.llvm.org/D27331
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@288519 91177308-0d34-0410-b5e6-96231b3b80d8
2016-12-02 17:53:56 +00:00
Adam Nemet
5e45db3e2e
[LTO] Move finishOptimizationRemarks after codegen
...
This addresses the comment D26832.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@288041 91177308-0d34-0410-b5e6-96231b3b80d8
2016-11-28 16:51:49 +00:00
Adam Nemet
4208630cb7
Rename option to -lto-pass-remarks-output
...
The new option -pass-remarks-output broke LLVM_LINK_LLVM_DYLIB because
of the duplicate option name with opt.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287627 91177308-0d34-0410-b5e6-96231b3b80d8
2016-11-22 07:35:14 +00:00
Mehdi Amini
4bd62ab489
[ThinLTO] Implement -pass-remarks-output in ThinLTOCodeGenerator
...
Summary:
This will also be added to the LTO API, right now this will
bring ThinLTO on par with Monolithic LTO on Darwin.
Reviewers: anemet
Subscribers: tejohnson, llvm-commits
Differential Revision: https://reviews.llvm.org/D26886
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287450 91177308-0d34-0410-b5e6-96231b3b80d8
2016-11-19 18:20:05 +00:00
Mehdi Amini
1bb4b12315
Change setDiagnosticsOutputFile to take a unique_ptr from a raw pointer (NFC)
...
Summary:
This makes it explicit that ownership is taken. Also replace all `new`
with make_unique<> at call sites.
Reviewers: anemet
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D26884
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287449 91177308-0d34-0410-b5e6-96231b3b80d8
2016-11-19 18:19:41 +00:00
Adam Nemet
8fb7aa0930
[LTO] Add option to generate optimization records
...
It is used to drive this from the clang driver via -mllvm.
Same option name is used as in opt.
Differential Revision: https://reviews.llvm.org/D26832
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287356 91177308-0d34-0410-b5e6-96231b3b80d8
2016-11-18 18:06:28 +00:00
Teresa Johnson
a547919737
Split Bitcode/ReaderWriter.h into separate reader and writer headers
...
Summary:
Split ReaderWriter.h which contains the APIs into both the BitReader and
BitWriter libraries into BitcodeReader.h and BitcodeWriter.h.
This is to address Chandler's concern about sharing the same API header
between multiple libraries (BitReader and BitWriter). That concern is
why we create a single bitcode library in our downstream build of clang,
which led to r286297 being reverted as it added a dependency that
created a cycle only when there is a single bitcode library (not two as
in upstream).
Reviewers: mehdi_amini
Subscribers: dlj, mehdi_amini, llvm-commits
Differential Revision: https://reviews.llvm.org/D26502
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286566 91177308-0d34-0410-b5e6-96231b3b80d8
2016-11-11 05:34:58 +00:00
Eli Friedman
7ec82250b3
Don't store Twine in a local variable.
...
Fixes post-commit review comment from r286177.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286275 91177308-0d34-0410-b5e6-96231b3b80d8
2016-11-08 19:43:56 +00:00
Eli Friedman
a19c76d93d
[LTO] Add error message on IO error in compileOptimizedToFile.
...
(No testcase because it's difficult to force an error here.)
Differential Revision: https://reviews.llvm.org/D26371
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@286177 91177308-0d34-0410-b5e6-96231b3b80d8
2016-11-07 23:43:07 +00:00
Evgeniy Stepanov
43122e284f
Utility functions for appending to llvm.used/llvm.compiler.used.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@285143 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-25 23:53:31 +00:00
Peter Collingbourne
d84bb1caf8
LTO: Use the correct mangler function in LTOCodeGenerator::applyScopeRestrictions().
...
We need to use the overload of Mangler::getNameWithPrefix that takes a
GlobalValue in order to mangle in the stdcall stack byte count for Windows
targets.
Differential Revision: https://reviews.llvm.org/D25529
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284040 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-12 20:12:19 +00:00
Mehdi Amini
c16b74e39e
Recommit "Use StringRef in LTOModule implementation (NFC)""
...
This reverts commit r283456 and reapply r282997, with explicitly
zeroing the struct member to workaround a bug in MSVC2013 with
zero-initialization: https://connect.microsoft.com/VisualStudio/feedback/details/802160
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283581 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-07 19:05:14 +00:00
Mehdi Amini
54de287798
Revert "Use StringRef in LTOModule implementation (NFC)"
...
This reverts commit r282997, a windows bot is asserting in
one test apparently.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@283456 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-06 15:12:22 +00:00
Mehdi Amini
65e620e05c
Use StringRef in LTOCodegenerator (NFC)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282998 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-01 01:18:23 +00:00
Mehdi Amini
a5deba03e2
Use StringRef in LTOModule implementation (NFC)
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@282997 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-01 01:18:16 +00:00
Davide Italiano
a92ab03000
[lib/LTO] Simplify. No functional change intended.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@280503 91177308-0d34-0410-b5e6-96231b3b80d8
2016-09-02 16:37:31 +00:00
Davide Italiano
84b3a5ec18
[lib/LTO] Add an assertion to catch invalid opt levels.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279823 91177308-0d34-0410-b5e6-96231b3b80d8
2016-08-26 15:22:59 +00:00
Davide Italiano
5bf89a1581
[LTOCodeGenerator] Reduce code duplication. NFCI.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@279514 91177308-0d34-0410-b5e6-96231b3b80d8
2016-08-23 12:32:57 +00:00
Peter Collingbourne
ef2acb50d0
Move legacy LTO interface headers to legacy/ directory.
...
Differential Revision: https://reviews.llvm.org/D22173
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275476 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-14 21:21:16 +00:00
Dehao Chen
e1d0bc8e03
New pass manager for LICM.
...
Summary: Port LICM to the new pass manager.
Reviewers: davidxl, silvas
Subscribers: krasin, vitalybuka, silvas, davide, sanjoy, llvm-commits, mehdi_amini
Differential Revision: http://reviews.llvm.org/D21772
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275222 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-12 22:37:48 +00:00
Vitaly Buka
c0c43ac164
Revert "New pass manager for LICM."
...
Summary: This reverts commit r275118.
Subscribers: sanjoy, mehdi_amini
Differential Revision: http://reviews.llvm.org/D22259
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275156 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-12 06:25:32 +00:00
Dehao Chen
f84fc6de4f
New pass manager for LICM.
...
Summary: Port LICM to the new pass manager.
Reviewers: davidxl, silvas
Subscribers: silvas, davide, sanjoy, llvm-commits, mehdi_amini
Differential Revision: http://reviews.llvm.org/D21772
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@275118 91177308-0d34-0410-b5e6-96231b3b80d8
2016-07-11 22:45:24 +00:00
Davide Italiano
e93d6b14f7
[UpdateCompilerUsed] API rename and cleanup, suggested by Rafaael.
...
* UpdateCompilerUsed() -> updateCompilerUsed()
* ThinLTO doesn't use the API so we can remove the include
* Clean up unused #include <functional> from the header
* Rename #ifdef guard comment to be correct.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273461 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-22 19:50:42 +00:00
Davide Italiano
e5ebd46f63
[LTO] Move UpdateCompilerUsed.h from lib/ to include/
...
I plan to use it in lld soon.
Differential Revision: http://reviews.llvm.org/D21575
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273380 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-22 04:52:43 +00:00
Davide Italiano
e92bed3b5e
[PM] Port MergedLoadStoreMotion to the new pass manager, take two.
...
This is indeed a much cleaner approach (thanks to Daniel Berlin
for pointing out), and also David/Sean for review.
Differential Revision: http://reviews.llvm.org/D21454
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@273032 91177308-0d34-0410-b5e6-96231b3b80d8
2016-06-17 19:10:09 +00:00