Replace GVFlags::LiveRoot with GVFlags::Live and use that instead of
all the DeadSymbols sets. This is refactoring in order to make
liveness information available in the RegularLTO pipeline
Details
- Reviewers
 pcc mehdi_amini tejohnson 
Diff Detail
- Repository
 - rL LLVM
 
Event Timeline
| lib/Transforms/IPO/FunctionImport.cpp | ||
|---|---|---|
| 439 | Can we return if we see at least one live summary? I think there is an invariant in this function that if at least one summary for a GUID is live, all are live.  | |
| 459 | Can this code be simplified to use a for loop? All it needs to do is add a ValueInfo to the worklist if it sees at least one live summary, right?  | |
| lib/Transforms/IPO/FunctionImport.cpp | ||
|---|---|---|
| 471 | I was thinking just push ValueInfo(&Entry) onto the worklist here. Then you can replace the other call to makeLiveRoot with the loop that sets summaries to live and remove makeLiveRoot entirely.  | |
| lib/Transforms/IPO/FunctionImport.cpp | ||
|---|---|---|
| 471 | But then we also need to do ++LiveSymbols in both places. I'm not sure it's a net win.  | |
| lib/Transforms/IPO/FunctionImport.cpp | ||
|---|---|---|
| 471 | We just need to do it here, no? Otherwise we'd end up double counting live roots.  | |
| lib/Transforms/IPO/FunctionImport.cpp | ||
|---|---|---|
| 471 | Oh right, good point.  | |
Can we return if we see at least one live summary? I think there is an invariant in this function that if at least one summary for a GUID is live, all are live.