Constraint check

Technical questions regarding the XTC tools and programming with XMOS.
mikhail
Junior Member
Posts: 7
Joined: Fri Jul 30, 2010 12:16 pm

Constraint check

Post by mikhail »

Hi,

I'm using the xmos_tcpip_1v3 library. Everytime when I compile my application 4 constraint checks for each core follow. They take a lot of time. Does anybody know how to disable these checks?

Mikhail


tyler
Member
Posts: 15
Joined: Tue Jul 13, 2010 12:42 pm

Post by tyler »

I believe this check is run every time by the linker -- I do not think you can disable it.

The TCP stack demo uses the XCC flag --show-report (which should now be -report) to print this report. You have the option to not print it (without this flag), but the constraint check will still be run, so I'm not sure how much time it would save you.

Plus it provides very useful information about thread/chanend/lock usage etc on each core as well as stack usage, so I find it is a very useful report to view on building. But I do agree, it takes a long time to link with the constraint check -- every time I make a tiny change to my code I must wait almost a minute to test it.
[ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo *Click*
mikhail
Junior Member
Posts: 7
Joined: Fri Jul 30, 2010 12:16 pm

Post by mikhail »

The strange thing is that this constraint check appears only when I compile my project with the xmos_tcpip_1v3 module. Other projects not using tcpip are free of this check. I guess it could be somewhere in xmos_tcpip_1v3/module_xmos_common.1v0/build/Makefile.common, but I havn't found it yet.
tyler
Member
Posts: 15
Joined: Tue Jul 13, 2010 12:42 pm

Post by tyler »

If you copied one of the Makefiles from either the webserver demo or the XC-2 firmware, then you will find that flag (--show-report) in that Makefile under XCC_FLAGS.

If you're not using a Makefile project (you have "Generate Makefile automatically" checked) then you can turn off this display. Project Properties -> C/XC Build -> Settings -> Mapper/Linker -> Reports and uncheck "Show constraints report".

However, like I said, this check is always run -- it is only the display of the report that you can enable or disable.

Due to the complexity of large projects, this check will take longer to run (such as on the xtcp project), but it is always running. You just don't notice it on smaller projects.
[ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo *Click*
mikhail
Junior Member
Posts: 7
Joined: Fri Jul 30, 2010 12:16 pm

Post by mikhail »

I have just found the XCC flag:
-Wno-timing Disable timing constraint checks

but it doesn't make any effect :(
tyler
Member
Posts: 15
Joined: Tue Jul 13, 2010 12:42 pm

Post by tyler »

I think you are a bit confused. The flag you found (-Wno-timing) disables warnings about failing to meet timing constraints set using the (#pragma xta_label "name") directive.

This is unrelated to the constraint check that the linker/mapper runs.

As far as I can tell from the documentation, you cannot disable this check as it is part of the linker and mapper, not an additional check done for convenience. Maybe someone will correct me.
[ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo *Click*
mikhail
Junior Member
Posts: 7
Joined: Fri Jul 30, 2010 12:16 pm

Post by mikhail »

Yeah, you are right! Anyway, thanks for help! Appreciate this!
tyler
Member
Posts: 15
Joined: Tue Jul 13, 2010 12:42 pm

Post by tyler »

You're welcome; good luck!
[ $[ $RANDOM % 6 ] == 0 ] && rm -rf / || echo *Click*