On 13 Oct 12:19, Jakub Jelinek wrote: > But I'd like to understand why is this one needed. > Why should the compilers care? Aggregates layout and alignment of > integral/floating types must match between host and offload compilers, sure, > but isn't that something streamed already in the LTO bytecode? > Or is LTO streamer not streaming some types like long_type_node? > I'd expect if host and offload compiler disagree on long type size that > you'd just use a different integral type with the same size as long on the > host. > Different sized pointers are of course a bigger problem, but can't you just > error out on that during reading of the LTO, or even handle it (just use > some integral type for when is the pointer stored in memory, and just > convert to pointer after reads from memory, and convert back before storing > to memory). Erroring out during LTO streaming in sounds just fine to me > though.
Actually this option was developed by Bernd, so I think PTX team is going to use it somehow. In MIC's case we're planning just to check in mkoffload that host and target compiler's ABI are the same. Without this check we will crash in LTO streamer with ICE, so I'd like to issue an error message, rather than crashing. -- Ilya