[lld] r193300 - [PassManager] add ReaderWriter{Native, YAML} to the Driver.

Nick Kledzik kledzik at apple.com
Thu Oct 24 13:04:52 PDT 2013


There is a catch-22 here.  Without the new passes it is hard for anyone to fix the other problems in lld that were causing the test case failures.

Can we do this in steps:
1) commit the code changes with the lines that use the two new passes commented out
2) owners of the broken areas can uncomment the code (enabling the passes) and fix their issues
3) the final commit is to enable the two new passes when all test cases pass 

-Nick

On Oct 24, 2013, at 11:28 AM, Rui Ueyama <ruiu at google.com> wrote:
> I reverted the patch because I had no choice other than that. Implementation quality of each port may vary, and probably ELF is the best at this moment because of its history, but intentionally submitting a patch that would break even "hello world" program on other port is simply unacceptable.
> 
> 
> On Thu, Oct 24, 2013 at 9:04 AM, Shankar Easwaran <shankare at codeaurora.org> wrote:
> Hi Nick,
> 
> So I found the problem on Darwin when it tries to add a StubHelperAtom :-
> 
>   X86_64StubHelperAtom(const File &file, const Atom &helperCommon)
>   : SimpleDefinedAtom(file) {
>     this->addReference(KindHandler_x86_64::lazyImmediate, 1, nullptr, 0);
>     this->addReference(KindHandler_x86_64::ripRel32, 6, &helperCommon, 0);
>   }
> 
> A reference is being added to point to a nullptr. This has to be fixed to point to the right atom.
> 
> Thanks
> 
> Shankar Easwaran
> 
> 
> On 10/24/2013 10:31 AM, Shankar Easwaran wrote:
> On 10/24/2013 12:23 AM, Rui Ueyama wrote:
> I did not expect you were going to submit your change with disabling so
> many tests. It disabled even pretty basic tests for COFF. This is really
> bad. Please don't do that.
> The problem was not in the patch as what I see. The problem is because the relocation types have not been added by pecoff.
> 
> ErrorOr<Reference::Kind>
> PECOFFLinkingContext::relocKindFromString(StringRef str) const {
>   return make_error_code(YamlReaderError::illegal_value);
> }
> 
> ErrorOr<std::string>
> PECOFFLinkingContext::stringFromRelocKind(Reference::Kind kind) const {
>   return make_error_code(YamlReaderError::illegal_value);
> }
> 
> These two are empty, this has to be fixed. This was the reason behind the failures for PECOFF. There are some more inherent assumptions that are being used which the new RoundTrip{YAML, Native} changes uncovered.
> 
> *I am going to fix the ELF cases*, but I am going to leave it to the flavor owners for changes to their respective flavors as I dont have much knowledge on what kind of factors to be considered ( as these might be some assumptions that could break).
> 
> Thanks
> 
> Shankar Easwaran
> 
> 
> 
> -- 
> Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, hosted by the Linux Foundation
> 
> 

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131024/d0033ea7/attachment.html>


More information about the llvm-commits mailing list