public inbox for ecos-patches@sourceware.org
 help / color / mirror / Atom feed
From: bugzilla-daemon@bugs.ecos.sourceware.org
To: ecos-patches@ecos.sourceware.org
Subject: [Bug 1001344] Allow nc_test_slave for lwIP to compile for targets with 128KiB RAM.
Date: Fri, 18 May 2012 07:25:00 -0000	[thread overview]
Message-ID: <20120518072517.B7A962F78001@mail.ecoscentric.com> (raw)
In-Reply-To: <bug-1001344-104@http.bugs.ecos.sourceware.org/>

Please do not reply to this email. Use the web interface provided at:
http://bugs.ecos.sourceware.org/show_bug.cgi?id=1001344

--- Comment #28 from Ilija Kocho <ilijak@siva.com.mk> 2012-05-18 08:25:03 BST ---
(In reply to comment #27)
> (In reply to comment #26)
> > 
> > CYGBLD_ATTRIB_UNUSED, contrary to what it's name implies, will keep the
> > variable. Ref: Bug 1001520
> 
> Oh yes, I'd already forgotten that conversation. The GCC documentation is still
> unclear on that point. In that case, we needed a memory access to a particular
> location. That happened courtesy of derefencing a volatile pointer set to an
> absolute address. 
> 
> I think this case might be a little different though as the volatile variable
> has entirely local scope. No manufactured addresses are involved that could (in
> principle) be affected by other agents.
> 

I think that "volatile" is strong enough so compiler wouldn't dare to drop it
even for an automatic variable. Here is the dump for our case. The code is
optimized indeed, but the computation of critical expression is maintained. 

do_some_random_computation(int p)
{
    // Just something that might be "hard"
    volatile double x CYGBLD_ATTRIB_UNUSED;
    x = ((p * 10) * 3.14159) / 180.0;  // radians
     560:    4620          mov    r0, r4
     562:    f010 fea3     bl    112ac <__aeabi_i2d>
     566:    a30c          add    r3, pc, #48    ; (adr r3, 598
<net_load+0x58>)
     568:    e9d3 2300     ldrd    r2, r3, [r3]
     56c:    f010 ff04     bl    11378 <__aeabi_dmul>
     570:    a30b          add    r3, pc, #44    ; (adr r3, 5a0
<net_load+0x60>)
     572:    e9d3 2300     ldrd    r2, r3, [r3]
     576:    f011 f829     bl    115cc <__aeabi_ddiv>
     57a:    340a          adds    r4, #10
net_load(cyg_addrword_t who)
{
    int i;
    while (true) {
        cyg_semaphore_wait(&load_thread_sem[who]);
        for (i = 0;  i < load_thread_level;  i++) {
     57c:    42ac          cmp    r4, r5
static void
do_some_random_computation(int p)
{
    // Just something that might be "hard"
    volatile double x CYGBLD_ATTRIB_UNUSED;
    x = ((p * 10) * 3.14159) / 180.0;  // radians
     57e:    e9cd 0100     strd    r0, r1, [sp]
net_load(cyg_addrword_t who)
{
    int i;
    while (true) {
        cyg_semaphore_wait(&load_thread_sem[who]);
        for (i = 0;  i < load_thread_level;  i++) {
     582:    d1ed          bne.n    560 <net_load+0x20>
            do_some_random_computation(i);
        }
        cyg_thread_delay(1);  // Wait until the next 'tick'
     584:    2001          movs    r0, #1
     586:    2100          movs    r1, #0
     588:    f003 f820     bl    35cc <cyg_thread_delay>
        cyg_semaphore_post(&load_thread_sem[who]);
     58c:    4630          mov    r0, r6
     58e:    f003 f86b     bl    3668 <cyg_semaphore_post>
    }
     592:    e7db          b.n    54c <net_load+0xc>
     594:    f3af 8000     nop.w
     598:    f01b866e     .word    0xf01b866e
     59c:    400921f9     .word    0x400921f9
     5a0:    00000000     .word    0x00000000
     5a4:    40668000     .word    0x40668000
     5a8:    70002cac     .word    0x70002cac
     5ac:    700033c8     .word    0x700033c8


> I wonder if you can use both USED and UNUSED at the same time. Given their
> intended functions, you should be able to, despite the English meanings
> implying they are in some way opposites to each other. That would deal with the
> uncertainty.

Then we get ...warning: ‘used’ attribute ignored... as per Comment #26.

Ilija

-- 
Configure bugmail: http://bugs.ecos.sourceware.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.

  parent reply	other threads:[~2012-05-18  7:25 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-26  7:28 [Bug 1001344] New: " bugzilla-daemon
2011-09-26 20:11 ` [Bug 1001344] " bugzilla-daemon
2011-09-26 21:30 ` bugzilla-daemon
2011-09-27  5:45 ` bugzilla-daemon
2011-09-27  7:35 ` bugzilla-daemon
2011-09-27  9:06 ` bugzilla-daemon
2011-10-02 14:36 ` bugzilla-daemon
2011-10-02 17:23 ` bugzilla-daemon
2011-10-02 17:29 ` bugzilla-daemon
2011-10-02 17:32 ` bugzilla-daemon
2011-10-02 17:36 ` bugzilla-daemon
2011-10-02 17:50 ` bugzilla-daemon
2011-10-02 19:06 ` bugzilla-daemon
2011-10-02 19:24 ` bugzilla-daemon
2012-05-13 10:50 ` bugzilla-daemon
2012-05-13 11:22 ` bugzilla-daemon
2012-05-14 20:36 ` bugzilla-daemon
2012-05-15  9:26 ` bugzilla-daemon
2012-05-15  9:55 ` bugzilla-daemon
2012-05-15 11:04 ` bugzilla-daemon
2012-05-16  0:28 ` bugzilla-daemon
2012-05-16 16:04 ` bugzilla-daemon
2012-05-16 16:20 ` bugzilla-daemon
2012-05-17 15:54 ` bugzilla-daemon
2012-05-17 16:12 ` bugzilla-daemon
2012-05-17 16:12 ` bugzilla-daemon
2012-05-17 17:04 ` bugzilla-daemon
2012-05-17 17:45 ` bugzilla-daemon
2012-05-18  7:25 ` bugzilla-daemon [this message]
2012-05-18 15:28 ` bugzilla-daemon
2012-05-26 19:19 ` bugzilla-daemon
2012-05-27  0:09 ` bugzilla-daemon
2012-05-27  8:32 ` bugzilla-daemon

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20120518072517.B7A962F78001@mail.ecoscentric.com \
    --to=bugzilla-daemon@bugs.ecos.sourceware.org \
    --cc=ecos-patches@ecos.sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).