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.
next prev 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).