Adding a patch for lld, which is the other user of OptTable. Thanks, Hans
On Thu, Jul 11, 2013 at 5:26 PM, Hans Wennborg <[email protected]> wrote: > Hi, > > I have a patch (split into three steps since it goes across > clang/llvm) that fixes this. > > Please take a look! > > Thanks, > Hans > > On Fri, Mar 15, 2013 at 12:16 PM, Daniel Dunbar <[email protected]> wrote: >> Hi Michael, >> >> I just happened to notice one thing about this patch that is suboptimal. >> This code: >> -- >> // Build prefixes. >> for (unsigned i = FirstSearchableIndex + 1, e = getNumOptions() + 1; >> i != e; ++i) { >> if (const char *const *P = getInfo(i).Prefixes) { >> for (; *P != 0; ++P) { >> PrefixesUnion.insert(*P); >> } >> } >> } >> -- >> does a lot of runtime computation (relatively) for very little value. >> >> Could you fix these two structures (PrefixesUnion and PrefixChars) to be >> computed by the tblgen pass? >> >> - Daniel >> >> >> >> On Mon, Oct 22, 2012 at 3:13 PM, Michael J. Spencer <[email protected]> >> wrote: >>> >>> Author: mspencer >>> Date: Mon Oct 22 17:13:48 2012 >>> New Revision: 166444 >>> >>> URL: http://llvm.org/viewvc/llvm-project?rev=166444&view=rev >>> Log: >>> [Options] Add prefixes to options. >>> >>> Each option has a set of prefixes. When matching an argument such as >>> -funroll-loops. First the leading - is removed as it is a prefix. Then >>> a lower_bound search for "funroll-loops" is done against the option table >>> by >>> option name. From there each option prefix + option name combination is >>> tested >>> against the argument. >>> >>> This allows us to support Microsoft style options where both / and - are >>> valid >>> prefixes. It also simplifies the cases we already have where options come >>> in >>> both - and -- forms. Almost every option for gnu-ld happens to have this >>> form.
2b-lld-pass-in-tablegenned-prefixesunion.patch
Description: Binary data
_______________________________________________ cfe-commits mailing list [email protected] http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
