On 05/19/2013 08:59 AM, Steven Bosscher wrote: > Some ports have > CFG-aware machine-reorg passes but verify_flow_info fails after the > machine-reorg pass because the port emits insns between basic blocks, > e.g. for const pools. What's missing is a way for verify_flow_info to > be tolerant of such non-insns but I'm not sure yet what the best > approach for this will be (possibilities I've considered so far are: > allow bare UNSPECV insns between basic blocks after machine-reorg; put > a flag on such non-insns; maintain a bitmap of uids for non-insns; > ...).
FYI, I once started implementing a DATA_INSN top-level rtx code to be used by backends for implementing constant pools. The rtx code had three fields, an rtx for the data to emit, and integer size and alignment fields. In theory we can then quit abusing UNSPECV and suchlike and just Know that this is explicit data that needs to be emitted at this point in the insn stream. Unfortunately, the tree is really quite old, and it'd be worth starting from scratch at this point. r~