search for: mdnodeset

Displaying 20 results from an estimated 30 matches for "mdnodeset".

Did you mean: mdnodes
2013 Jun 20
1
[LLVMdev] Proposal: type uniquing of debug info for LTO
...ave special hooks for this debug info feature. Understand, that is why it is an option and comments from other people are welcome. > >> Other choices are: >> a> Keep a map in DwarfDebug >> Keep in mind that the map is used at many stages, and it has to be in sync with MDNodeSet. > > I'm not sure what you mean by "in sync with the MDNodeSet". When a node is created or RAUW, the map has to be updated. MDNodeSet keeps all live MDNodes and the map keeps part of MDNodeSet. > >> b> Generalize MDNode to be aware of hash (David can provide more...
2013 Nov 13
2
[LLVMdev] Proposal: release MDNodes for source modules (LTO+debug info)
...In LLVMContext, add “removeUnusedMDNodes" function It goes through OwnedModules and check if a MDNode is used by any of the modules, if not remove it. One implementation is to mark a visited MDNode used when traversing the module. After done traversing all modules, we can delete MDNodes in MDNodeSet that are not marked. In LTOCodeGenerator, add a vector of source modules that are added (these source modules will be linked with DestroySource mode). In LTOCodeGenerator:: compile_to_file, delete all source modules that are linked in, then call LLVMContext::removeUnusedMDNodes —> I can’t find...
2013 Jun 20
0
[LLVMdev] Proposal: type uniquing of debug info for LTO
...this isn't an appropriate layering & that LLVM's core IR metadata APIs cannot reasonably have special hooks for this debug info feature. > Other choices are: > a> Keep a map in DwarfDebug > Keep in mind that the map is used at many stages, and it has to be in sync with MDNodeSet. I'm not sure what you mean by "in sync with the MDNodeSet". > b> Generalize MDNode to be aware of hash (David can provide more details) My suggestion here, which I think is the only reason to really discuss this broadly (because it would be an LLVM metadata API feature) is r...
2013 Nov 13
0
[LLVMdev] Proposal: release MDNodes for source modules (LTO+debug info)
...veUnusedMDNodes" function > It goes through OwnedModules and check if a MDNode is used by any of the > modules, if not remove it. > One implementation is to mark a visited MDNode used when traversing the > module. After done traversing all modules, we can delete MDNodes in > MDNodeSet that are not marked. > > In LTOCodeGenerator, add a vector of source modules that are added (these > source modules will be linked with DestroySource mode). > In LTOCodeGenerator:: compile_to_file, delete all source modules that are > linked in, then call LLVMContext::removeUnusedMDN...
2013 Nov 13
3
[LLVMdev] Proposal: release MDNodes for source modules (LTO+debug info)
...; function >> It goes through OwnedModules and check if a MDNode is used by any of >> the modules, if not remove it. >> One implementation is to mark a visited MDNode used when traversing the >> module. After done traversing all modules, we can delete MDNodes in >> MDNodeSet that are not marked. >> >> In LTOCodeGenerator, add a vector of source modules that are added (these >> source modules will be linked with DestroySource mode). >> In LTOCodeGenerator:: compile_to_file, delete all source modules that are >> linked in, then call LLVMCont...
2013 Jun 20
9
[LLVMdev] Proposal: type uniquing of debug info for LTO
...MostGenericFPMath(MDNode *A, MDNode *B); static MDNode *getMostGenericRange(MDNode *A, MDNode *B); Comments are welcome on whether this violates any layering rule. Other choices are: a> Keep a map in DwarfDebug Keep in mind that the map is used at many stages, and it has to be in sync with MDNodeSet. b> Generalize MDNode to be aware of hash (David can provide more details) c> Extend MDNode to DINode and modify streamers (bitcode reader|writer, ll reader|writer) to be aware of DINode We can provide DINode::get(…) to create a DINode. DINode can have its own Profile function. Other sug...
2013 Jun 20
2
[LLVMdev] Proposal: type uniquing of debug info for LTO
...is a good idea > and would prefer either a or b below. a) is a much simpler solution. Any reason that why it is not a good idea? > >> Other choices are: >> a> Keep a map in DwarfDebug >> Keep in mind that the map is used at many stages, and it has to be in sync with MDNodeSet. >> b> Generalize MDNode to be aware of hash (David can provide more details) >> c> Extend MDNode to DINode and modify streamers (bitcode reader|writer, ll reader|writer) to be aware of DINode >> We can provide DINode::get(…) to create a DINode. DINode can have its own Pr...
2013 Jun 21
2
[LLVMdev] Proposal: type uniquing of debug info for LTO
...pecial' string) but any access of the node > through the operand list would return the underlying MDNode from the > list (lookup via a map in LLVMContext, essentially). > > --------------------- > Options that are vetoed: > 1> Specialize Profile function for DI nodes to use MDNodeSet to support > lookup. No need for a separate map. > 2> Extend the class hierarchy to have a class for DI nodes: > Value -- MDNode -- DINode > -- MDString > -- User -- Instruction -- BinaryOperator > > I personally prefer option b over a since it is...
2013 Jun 21
5
[LLVMdev] Proposal: type uniquing of debug info for LTO
...a good idea > and would prefer either a or b below. a) is a much simpler solution. > > Any reason that why it is not a good idea? > > > Other choices are: > a> Keep a map in DwarfDebug > Keep in mind that the map is used at many stages, and it has to be in sync > with MDNodeSet. > b> Generalize MDNode to be aware of hash (David can provide more details) > c> Extend MDNode to DINode and modify streamers (bitcode reader|writer, ll > reader|writer) to be aware of DINode > We can provide DINode::get(…) to create a DINode. DINode can have its own > Profile...
2013 Jun 20
2
[LLVMdev] Proposal: type uniquing of debug info for LTO
...good idea > and would prefer either a or b below. a) is a much simpler solution. > > Any reason that why it is not a good idea? > > > Other choices are: > a> Keep a map in DwarfDebug > Keep in mind that the map is used at many stages, and it has to be in sync > with MDNodeSet. > b> Generalize MDNode to be aware of hash (David can provide more details) > c> Extend MDNode to DINode and modify streamers (bitcode reader|writer, ll > reader|writer) to be aware of DINode > We can provide DINode::get(…) to create a DINode. DINode can have its own > Profi...
2013 Jun 21
3
[LLVMdev] Proposal: type uniquing of debug info for LTO
...t;> through the operand list would return the underlying MDNode from the > >> list (lookup via a map in LLVMContext, essentially). > >> > >> --------------------- > >> Options that are vetoed: > >> 1> Specialize Profile function for DI nodes to use MDNodeSet to support lookup. No need for a separate map. > >> 2> Extend the class hierarchy to have a class for DI nodes: > >> Value -- MDNode -- DINode > >> -- MDString > >> -- User -- Instruction -- BinaryOperator > >> > >>...
2013 Jun 21
0
[LLVMdev] Proposal: type uniquing of debug info for LTO
...e flag that it's a 'special' string) but any access of the node through the operand list would return the underlying MDNode from the list (lookup via a map in LLVMContext, essentially). --------------------- Options that are vetoed: 1> Specialize Profile function for DI nodes to use MDNodeSet to support lookup. No need for a separate map. 2> Extend the class hierarchy to have a class for DI nodes: Value -- MDNode -- DINode -- MDString -- User -- Instruction -- BinaryOperator I personally prefer option b over a since it is much cleaner. Thanks, Manman On...
2013 Jun 21
0
[LLVMdev] Proposal: type uniquing of debug info for LTO
...any access of the node >> through the operand list would return the underlying MDNode from the >> list (lookup via a map in LLVMContext, essentially). >> >> --------------------- >> Options that are vetoed: >> 1> Specialize Profile function for DI nodes to use MDNodeSet to support lookup. No need for a separate map. >> 2> Extend the class hierarchy to have a class for DI nodes: >> Value -- MDNode -- DINode >> -- MDString >> -- User -- Instruction -- BinaryOperator >> >> I personally prefer option b...
2013 Jun 20
0
[LLVMdev] Proposal: type uniquing of debug info for LTO
...ould prefer either a or b below. a) is a much simpler solution. > Any reason that why it is not a good idea? > >> >>> Other choices are: >>> a> Keep a map in DwarfDebug >>> Keep in mind that the map is used at many stages, and it has to be in sync with MDNodeSet. >>> b> Generalize MDNode to be aware of hash (David can provide more details) >>> c> Extend MDNode to DINode and modify streamers (bitcode reader|writer, ll reader|writer) to be aware of DINode >>> We can provide DINode::get(…) to create a DINode. DINode can have...
2013 Nov 13
0
[LLVMdev] Proposal: release MDNodes for source modules (LTO+debug info)
...gt; It goes through OwnedModules and check if a MDNode is used by any of >>> the modules, if not remove it. >>> One implementation is to mark a visited MDNode used when traversing >>> the module. After done traversing all modules, we can delete MDNodes in >>> MDNodeSet that are not marked. >>> >>> In LTOCodeGenerator, add a vector of source modules that are added >>> (these source modules will be linked with DestroySource mode). >>> In LTOCodeGenerator:: compile_to_file, delete all source modules that >>> are linked in...
2013 Jun 21
2
[LLVMdev] Proposal: type uniquing of debug info for LTO
...uch simpler solution. >>> >>> Any reason that why it is not a good idea? >>> >>> >>> Other choices are: >>> a> Keep a map in DwarfDebug >>> Keep in mind that the map is used at many stages, and it has to be in sync >>> with MDNodeSet. >>> b> Generalize MDNode to be aware of hash (David can provide more details) >>> c> Extend MDNode to DINode and modify streamers (bitcode reader|writer, ll >>> reader|writer) to be aware of DINode >>> We can provide DINode::get(…) to create a DINode. DIN...
2013 Jun 21
0
[LLVMdev] Proposal: type uniquing of debug info for LTO
...gt;>> through the operand list would return the underlying MDNode from the >>> list (lookup via a map in LLVMContext, essentially). >>> >>> --------------------- >>> Options that are vetoed: >>> 1> Specialize Profile function for DI nodes to use MDNodeSet to support >>> lookup. No need for a separate map. >>> 2> Extend the class hierarchy to have a class for DI nodes: >>> Value -- MDNode -- DINode >>> -- MDString >>> -- User -- Instruction -- BinaryOperator >>> >&...
2013 Jun 21
1
[LLVMdev] Proposal: type uniquing of debug info for LTO
...he operand list would return the underlying MDNode from the >>>> list (lookup via a map in LLVMContext, essentially). >>>> >>>> --------------------- >>>> Options that are vetoed: >>>> 1> Specialize Profile function for DI nodes to use MDNodeSet to support >>>> lookup. No need for a separate map. >>>> 2> Extend the class hierarchy to have a class for DI nodes: >>>> Value -- MDNode -- DINode >>>> -- MDString >>>> -- User -- Instruction -- BinaryOperator &...
2013 Jun 21
0
[LLVMdev] Proposal: type uniquing of debug info for LTO
...ither a or b below. a) is a much simpler solution. >> >> Any reason that why it is not a good idea? >> >> >> Other choices are: >> a> Keep a map in DwarfDebug >> Keep in mind that the map is used at many stages, and it has to be in sync >> with MDNodeSet. >> b> Generalize MDNode to be aware of hash (David can provide more details) >> c> Extend MDNode to DINode and modify streamers (bitcode reader|writer, ll >> reader|writer) to be aware of DINode >> We can provide DINode::get(…) to create a DINode. DINode can have its...
2013 Jun 20
0
[LLVMdev] Proposal: type uniquing of debug info for LTO
...gt; As I've said many times in email, I don't think this is a good idea and would prefer either a or b below. a) is a much simpler solution. > Other choices are: > a> Keep a map in DwarfDebug > Keep in mind that the map is used at many stages, and it has to be in sync with MDNodeSet. > b> Generalize MDNode to be aware of hash (David can provide more details) > c> Extend MDNode to DINode and modify streamers (bitcode reader|writer, ll reader|writer) to be aware of DINode > We can provide DINode::get(…) to create a DINode. DINode can have its own Profile funct...