vg_leak issues
NAKAMURA Takumi
geek4civic at gmail.com
Mon Nov 18 06:01:18 PST 2013
For now, I suppressed a couple of arm-fast-isel tests with
XFAIL:vg_leak in r195010,
and filed; http://llvm.org/bugs/show_bug.cgi?id=17978
FYI,
> LLVM-Unit :: IR/Debug+Asserts/IRTests/IRBuilderTest.RAIIHelpersTest
Benjamin did in r194797.
> LLVM-Unit :: Linker/Debug+Asserts/LinkerTests/LinkModuleTest.BlockAddress
It has been removed in trunk. Who can clean up build tree?
2013/11/15 Rafael EspĂndola <rafael.espindola at gmail.com>:
> On 14 November 2013 12:39, Tim Northover <t.p.northover at gmail.com> wrote:
>>>> +unsigned ARMFastISel::getLibcallReg(const Twine &Name) {
>>>> + GlobalValue *GV = new GlobalVariable(Type::getInt32Ty(*Context), false,
>>>> + GlobalValue::ExternalLinkage, 0, Name);
>>>> + return ARMMaterializeGV(GV, TLI.getValueType(GV->getType()));
>>>> }
>>>>
>>>> GV leaks.
>>>
>>> This is a particularly nasty one. During codegen the IR module is
>>> constant, so we cannot add to it. It looks like what is needed is for
>>> MI to have a way to represent a variable without creating an IR level
>>> one.
>>
>> Isn't that what ExternalSymbol is for? Though dealing with both of
>> those cases is rather annoying, you frequently have to duplicate code
>> because a global is almost, but not quite, identical to an external.
>
> That might be one of these cases. Maybe all that is needed is for
> ARMMaterializeGV to extract the information it needs (thread local,
> indirect, etc) and call a lower level function that takes bools and a
> name. This code path can then use the lower level one and avoid
> allocating a new GV.
>
> Cheers,
> Rafael
More information about the llvm-commits
mailing list