Bug 34740 - Implement NEVER_INLINE and NO_RETURN for RVCT
Summary: Implement NEVER_INLINE and NO_RETURN for RVCT
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: Platform (show other bugs)
Version: 528+ (Nightly build)
Hardware: PC Other
: P2 Normal
Assignee: Nobody
URL:
Keywords: Qt
Depends on:
Blocks: 27065
  Show dependency treegraph
 
Reported: 2010-02-08 19:17 PST by Laszlo Gombos
Modified: 2010-02-14 22:31 PST (History)
5 users (show)

See Also:


Attachments
proposed patch (1.13 KB, patch)
2010-02-08 19:20 PST, Laszlo Gombos
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Laszlo Gombos 2010-02-08 19:17:28 PST
NEVER_INLINE and NO_RETURN are only implemented for GCC at the moment; RVCT has support for these attributes as well.
Comment 1 Laszlo Gombos 2010-02-08 19:20:12 PST
Created attachment 48385 [details]
proposed patch

Have not had a chance to test the patch myself; maybe someone form CC can help with testing before I get to it. Thanks !
Comment 2 Kwang Yul Seo 2010-02-08 19:54:40 PST
I can't find __declspec(noinline) in RVCT 2.2 manual. It is available in RVCT 4.0.

I will test the patch myself with RVCT 2.2.
Comment 3 Kwang Yul Seo 2010-02-09 02:40:49 PST
Okay. It works fine with RVCT 2.2 [Build 593] though I couldn't find __declspec(noinline) in RVCT 2.2 manual. LGTM.
Comment 4 Janne Koskinen 2010-02-09 05:44:18 PST
(In reply to comment #3)
> Okay. It works fine with RVCT 2.2 [Build 593] though I couldn't find
> __declspec(noinline) in RVCT 2.2 manual. LGTM.

Tried looking for answer to this as well. __declspec(noinline) is completely missing from docs for RVCT2.2.
Did you check that it actually didn't inline your function if keyword was used? I mean if it would be happy with __declspec(foobar).

But in any case I agree this should be landed.
Comment 5 Kwang Yul Seo 2010-02-09 06:30:30 PST
(In reply to comment #4)
> (In reply to comment #3)
> > Okay. It works fine with RVCT 2.2 [Build 593] though I couldn't find
> > __declspec(noinline) in RVCT 2.2 manual. LGTM.
> 
> Tried looking for answer to this as well. __declspec(noinline) is completely
> missing from docs for RVCT2.2.
> Did you check that it actually didn't inline your function if keyword was used?
> I mean if it would be happy with __declspec(foobar).
> 
> But in any case I agree this should be landed.

RVCT is not happy with __declspec(foobar).

Warning: L6305W: Image does not have an entry point. (Not specified or not set due to multiple choices.)
Finished: 0 information, 1 warning and 0 error messages.
"a.c", line 7: Warning:  #645-D: "foobar" is an unrecognized __declspec attribute
  __declspec(foobar) void foo(UChar* u)
             ^
a.c: 1 warning, 0 errors


RVCT 2.2 certainly recognizes __declspec(noinline) though it is not documented. I didn't check if the function with __declspec(noinline) is actually not inlined.
Comment 6 Adam Barth 2010-02-09 12:20:20 PST
Comment on attachment 48385 [details]
proposed patch

Sounds like everyone is in agreement that this should be landed.
Comment 7 WebKit Commit Bot 2010-02-14 22:31:39 PST
Comment on attachment 48385 [details]
proposed patch

Clearing flags on attachment: 48385

Committed r54765: <http://trac.webkit.org/changeset/54765>
Comment 8 WebKit Commit Bot 2010-02-14 22:31:50 PST
All reviewed patches have been landed.  Closing bug.