[llvm-commits] [llvm] r139698 - in /llvm/trunk/lib/CodeGen: SplitKit.cpp SplitKit.h

Devang Patel dpatel at apple.com
Wed Sep 14 14:27:25 PDT 2011


On Sep 14, 2011, at 1:46 PM, Jakob Stoklund Olesen wrote:

> 
> On Sep 14, 2011, at 12:55 PM, Evan Cheng wrote:
> 
>> 
>> On Sep 14, 2011, at 11:54 AM, Jim Grosbach wrote:
>> 
>>> 
>>> On Sep 14, 2011, at 11:27 AM, Evan Cheng wrote:
>>> 
>>>> 
>>>> On Sep 14, 2011, at 10:06 AM, Jakob Stoklund Olesen wrote:
>>>> 
>>>>> 
>>>>> 
>>>>> We really need a way of injecting machine code into any pass in the pipeline, like opt can do with IR.
>>>> 
>>>> I support this. What would it take though? It seems like a non-trivial task.
>>>> 
>>> 
>>> Offhand, it seems the main thing we'd need is the ability serialize MachineFunctions. Definitely non-trivial, but not intractable.
>> 
>> Serializing MF is one part of it. It will have to correctly handle target specific info. The messy part is the other states like MachineRegisterInfo.
> 
> MRI can be recomputed from an MF dump.  There is the problem of preserving the use-chain order, same as for bitcode.
> 
> Extra fun is MachineMemOperand.  It has a reference to an llvm::Value representing the address.  We pass that to alias analysis.  You would need to dump the LLVM IR as well to preserve that information.  The constant pool also has IR references.

Debugging information also has IR references through metadata nodes.

> The target-specific MachineFunctionInfo is a problem.  We would have to ask the target to serialize it.
> 
> MachineModuleInfo has lots of stuff that we don't currently print out.


-
Devang



More information about the llvm-commits mailing list