#
7faeecc8 |
| 25-Dec-2016 |
Amjad Aboud <amjad.aboud@intel.com> |
[DebugInfo] Added support for Checksum debug info feature.
Differential Revision: https://reviews.llvm.org/D27642
llvm-svn: 290514
|
#
690952d1 |
| 25-Dec-2016 |
Mehdi Amini <mehdi.amini@apple.com> |
MetadataLoader: replace the tracking of ForwardReferences and UnresolvedNodes with a set-based solution (NFC)
This makes it explicit what is the exact list to handle, and it looks much more easy to
MetadataLoader: replace the tracking of ForwardReferences and UnresolvedNodes with a set-based solution (NFC)
This makes it explicit what is the exact list to handle, and it looks much more easy to manipulate and understand that the previous custom tracking of min/max to express the range where to look for.
Differential Revision: https://reviews.llvm.org/D28089
llvm-svn: 290507
show more ...
|
#
4f90ee00 |
| 25-Dec-2016 |
Mehdi Amini <mehdi.amini@apple.com> |
MetadataLoader: add an extra assertion in Placeholders flush (NFC)
We don't expect any forward reference at this point.
llvm-svn: 290506
|
#
9f926f70 |
| 23-Dec-2016 |
Mehdi Amini <mehdi.amini@apple.com> |
MetadataLoader: split the creation of a single metadata out of a Record into its own function (NFC)
This is pure code motion, will just make it more reusable when I'll attempt to lazy-load Metadats
MetadataLoader: split the creation of a single metadata out of a Record into its own function (NFC)
This is pure code motion, will just make it more reusable when I'll attempt to lazy-load Metadats on-demand.
llvm-svn: 290414
show more ...
|
#
37c178b6 |
| 23-Dec-2016 |
Mehdi Amini <mehdi.amini@apple.com> |
MetadataLoader: Reinitialize MinFwdRef/MaxFwdRef after resolving cycles (NFC)
This put the Loader back in a consistent state.
llvm-svn: 290409
|
#
5ae6170f |
| 23-Dec-2016 |
Mehdi Amini <mehdi.amini@apple.com> |
MetadataLoader: Add an assertion for the implicit invariant of PlaceHolder while loading Metadata (NFC)
llvm-svn: 290408
|
#
70a9cd4c |
| 23-Dec-2016 |
Mehdi Amini <mehdi.amini@apple.com> |
MetadataLoader: Make sure every member of MetadataLoader are initialized (NFC)
llvm-svn: 290407
|
#
ec68dd49 |
| 23-Dec-2016 |
Mehdi Amini <mehdi.amini@apple.com> |
MetadataLoader: Refactor "IsImporting" into the Pimpl for the MetadataLoader (NFC)
Keeping all the state together will make it easier to handle.
llvm-svn: 290406
|
#
bceaaa96 |
| 20-Dec-2016 |
Adrian Prantl <aprantl@apple.com> |
[IR] Remove the DIExpression field from DIGlobalVariable.
This patch implements PR31013 by introducing a DIGlobalVariableExpression that holds a pair of DIGlobalVariable and DIExpression.
Currently
[IR] Remove the DIExpression field from DIGlobalVariable.
This patch implements PR31013 by introducing a DIGlobalVariableExpression that holds a pair of DIGlobalVariable and DIExpression.
Currently, DIGlobalVariables holds a DIExpression. This is not the best way to model this:
(1) The DIGlobalVariable should describe the source level variable, not how to get to its location.
(2) It makes it unsafe/hard to update the expressions when we call replaceExpression on the DIGLobalVariable.
(3) It makes it impossible to represent a global variable that is in more than one location (e.g., a variable with multiple DW_OP_LLVM_fragment-s). We also moved away from attaching the DIExpression to DILocalVariable for the same reasons.
This reapplies r289902 with additional testcase upgrades and a change to the Bitcode record for DIGlobalVariable, that makes upgrading the old format unambiguous also for variables without DIExpressions.
<rdar://problem/29250149> https://llvm.org/bugs/show_bug.cgi?id=31013 Differential Revision: https://reviews.llvm.org/D26769
llvm-svn: 290153
show more ...
|
#
a61f5e37 |
| 16-Dec-2016 |
Teresa Johnson <tejohnson@google.com> |
[ThinLTO] Import composite types as declarations
Summary: When reading the metadata bitcode, create a type declaration when possible for composite types when we are importing. Doing this in the bitc
[ThinLTO] Import composite types as declarations
Summary: When reading the metadata bitcode, create a type declaration when possible for composite types when we are importing. Doing this in the bitcode reader saves memory. Also it works naturally in the case when the type ODR map contains a definition for the same composite type because it was used in the importing module (buildODRType will automatically use the existing definition and not create a type declaration).
For Chromium built with -g2, this reduces the aggregate size of the generated native object files by 66% (from 31G to 10G). It reduced the time through the ThinLTO link and backend phases by about 20% on my machine.
Reviewers: mehdi_amini, dblaikie, aprantl
Subscribers: llvm-commits
Differential Revision: https://reviews.llvm.org/D27775
llvm-svn: 289993
show more ...
|
#
73ec0656 |
| 16-Dec-2016 |
Adrian Prantl <aprantl@apple.com> |
Revert "[IR] Remove the DIExpression field from DIGlobalVariable."
This reverts commit 289920 (again). I forgot to implement a Bitcode upgrade for the case where a DIGlobalVariable has not DIExpress
Revert "[IR] Remove the DIExpression field from DIGlobalVariable."
This reverts commit 289920 (again). I forgot to implement a Bitcode upgrade for the case where a DIGlobalVariable has not DIExpression. Unfortunately it is not possible to safely upgrade these variables without adding a flag to the bitcode record indicating which version they are. My plan of record is to roll the planned follow-up patch that adds a unit: field to DIGlobalVariable into this patch before recomitting. This way we only need one Bitcode upgrade for both changes (with a version flag in the bitcode record to safely distinguish the record formats).
Sorry for the churn!
llvm-svn: 289982
show more ...
|
#
8662305b |
| 16-Dec-2016 |
Mehdi Amini <mehdi.amini@apple.com> |
Strip invalid TBAA when reading bitcode
This ensures backward compatibility on bitcode loading.
Differential Revision: https://reviews.llvm.org/D27839
llvm-svn: 289977
|
#
74a835cd |
| 16-Dec-2016 |
Adrian Prantl <aprantl@apple.com> |
[IR] Remove the DIExpression field from DIGlobalVariable.
This patch implements PR31013 by introducing a DIGlobalVariableExpression that holds a pair of DIGlobalVariable and DIExpression.
Currently
[IR] Remove the DIExpression field from DIGlobalVariable.
This patch implements PR31013 by introducing a DIGlobalVariableExpression that holds a pair of DIGlobalVariable and DIExpression.
Currently, DIGlobalVariables holds a DIExpression. This is not the best way to model this:
(1) The DIGlobalVariable should describe the source level variable, not how to get to its location.
(2) It makes it unsafe/hard to update the expressions when we call replaceExpression on the DIGLobalVariable.
(3) It makes it impossible to represent a global variable that is in more than one location (e.g., a variable with multiple DW_OP_LLVM_fragment-s). We also moved away from attaching the DIExpression to DILocalVariable for the same reasons.
This reapplies r289902 with additional testcase upgrades.
<rdar://problem/29250149> https://llvm.org/bugs/show_bug.cgi?id=31013 Differential Revision: https://reviews.llvm.org/D26769
llvm-svn: 289920
show more ...
|
#
03c6d31a |
| 16-Dec-2016 |
Adrian Prantl <aprantl@apple.com> |
Revert "[IR] Remove the DIExpression field from DIGlobalVariable."
This reverts commit 289902 while investigating bot berakage.
llvm-svn: 289906
|
#
ce139357 |
| 16-Dec-2016 |
Adrian Prantl <aprantl@apple.com> |
[IR] Remove the DIExpression field from DIGlobalVariable.
This patch implements PR31013 by introducing a DIGlobalVariableExpression that holds a pair of DIGlobalVariable and DIExpression.
Currently
[IR] Remove the DIExpression field from DIGlobalVariable.
This patch implements PR31013 by introducing a DIGlobalVariableExpression that holds a pair of DIGlobalVariable and DIExpression.
Currently, DIGlobalVariables holds a DIExpression. This is not the best way to model this:
(1) The DIGlobalVariable should describe the source level variable, not how to get to its location.
(2) It makes it unsafe/hard to update the expressions when we call replaceExpression on the DIGLobalVariable.
(3) It makes it impossible to represent a global variable that is in more than one location (e.g., a variable with multiple DW_OP_LLVM_fragment-s). We also moved away from attaching the DIExpression to DILocalVariable for the same reasons.
<rdar://problem/29250149> https://llvm.org/bugs/show_bug.cgi?id=31013 Differential Revision: https://reviews.llvm.org/D26769
llvm-svn: 289902
show more ...
|
#
b3901bdd |
| 12-Dec-2016 |
Nico Weber <nicolasweber@gmx.de> |
Fix MSVC build after 289461; MSVC isn't sure if this is std:: or llvm::
llvm-svn: 289480
|
#
ef27db87 |
| 12-Dec-2016 |
Mehdi Amini <mehdi.amini@apple.com> |
Refactor BitcodeReader: move Metadata and ValueId handling in their own class/file
Summary: I'm planning on changing the way we load metadata to enable laziness. I'm getting lost in this gigantic fi
Refactor BitcodeReader: move Metadata and ValueId handling in their own class/file
Summary: I'm planning on changing the way we load metadata to enable laziness. I'm getting lost in this gigantic files, and gigantic class that is the bitcode reader. This is a first toward splitting it in a few coarse components that are more easily understandable.
Reviewers: pcc, tejohnson
Subscribers: mgorny, llvm-commits, dexonsmith
Differential Revision: https://reviews.llvm.org/D27646
llvm-svn: 289461
show more ...
|