Details
-
Type:
New Feature
-
Status:
Open
-
Priority:
Major
-
Resolution: Unresolved
-
Affects Version/s: None
-
Fix Version/s: X10 1000
-
Component/s: X10 Compiler: Common Optimizer, X10DT Builder
-
Labels:None
-
Number of attachments :
Description
Issue: Inlining (both at the X10 and the C++ level) creates cross-file dependencies.
In X10 2.2, incremental X10DT buulds with OPTIMIZE enabled are inherently incorrect.
The compiler needs to provide X10DT with a dependency list as part of compilation and X10DT needs to process this when deciding what to recompile when a source file is changed.
Activity
David Grove
made changes -
| Field | Original Value | New Value |
|---|---|---|
| Fix Version/s | X10 2.4 [ 17010 ] | |
| Fix Version/s | X10 2.3 [ 17009 ] |
David Grove
made changes -
| Fix Version/s | X10 1000 [ 14901 ] | |
| Fix Version/s | X10 2.4 [ 17010 ] |
Bowen and I discussed this a while ago. What is needed is a change in the Position API in the frontend to allow storing outer positions. The inliner then needs to use this API to record inlining chains. The X10DT builder would have to analyze the ASTs just before code generation and traverse these position chains to find all dependencies.
I don't see a way to track C++-level inlining dependencies, unless we build in special knowledge about the post-compiler into the C++ code generator.