release_33 branch: proposing r185594, r185615, r185616 and r185617
Dimitry Andric
dimitry at andric.com
Sat Jul 20 13:31:50 PDT 2013
On Jul 19, 2013, at 16:39, Tom Stellard <tom at stellard.net> wrote:
> On Mon, Jul 08, 2013 at 09:55:47PM +0200, Dimitry Andric wrote:
>> Hi,
>>
>> For the 3.3 release branch, I would like to propose merging r185594, r185615, r185616 and r185617:
>>
>> r185594 from llvm trunk (by Jakob Stoklund Olesen):
>>
>> Add MachineBasicBlock::addLiveIn().
>>
>> This function adds a live-in physical register to an MBB and ensures
>> that it is copied to a virtual register immediately.
>>
>
> This patch adds a public function which I think will break the ABI, and
> it was decided that stable releases shouldn't break the ABI.
This is reasonably easy to work around (though a little ugly).
[...]
>> r185617 from llvm trunk (by Jakob Stoklund Olesen):
>>
>> Simplify landing pad lowering.
>>
>> Stop using the ISD::EXCEPTIONADDR and ISD::EHSELECTION when lowering
>> landing pad arguments. These nodes were previously legalized into
>> CopyFromReg nodes, but that never worked properly because the
>> CopyFromReg node weren't guaranteed to be scheduled at the top of the
>> basic block.
>>
>> This meant the exception pointer and selector registers could be
>> clobbered before being copied to a virtual register.
>>
>> This patch copies the two physical registers to virtual registers at
>> the beginning of the basic block, and lowers the landingpad instruction
>> directly to two CopyFromReg nodes reading the *virtual* registers. This
>> is safe because virtual registers don't get clobbered.
>>
>> A future patch will remove the ISD::EXCEPTIONADDR and ISD::EHSELECTION
>> nodes.
>>
>
> This patch adds two new public members which I also think will break the
> ABI. I don't think I can accept r185594 and r185617 unless you can either:
> 1. Rework them in a way that doesn't break the ABI.
> 2. Revive the discussion about ABI compatibility of stable release and
> get a general consensus that breaking the ABI is OK. The original
> discussion is here:
> https://groups.google.com/forum/#!msg/llvm-dev/NLxx_8SIaHI/5aNecjnpeXEJ
Would it be considered breaking the ABI to make the members private? Or
is anything that changes the class layout out of the question?
-Dimitry
More information about the llvm-commits
mailing list