RE: [RFC v2] MIPS ABI Extension for IEEE Std 754 Non-Compliant Interlinking

2016-05-16 Thread Matthew Fortune
Hi Maciej,

Thanks for the update.  I've read through the whole proposal again and
it looks good.  I'd like to discuss legacy objects a bit more though...

Maciej Rozycki  writes:
> 3.4 Relocatable Object Generation
> 
>  Tools that produce relocatable objects such as the assembler shall
> always produce a SHT_MIPS_ABIFLAGS section according to the IEEE Std 754
> compliance mode selected.  In the absence of any explicit user
> instructions the `strict' mode shall be assumed.  No new `legacy'
> objects shall be produced.

Is it necessary to say that no new legacy objects can be created?

I think there is value in still being able to generate legacy objects because
of the fact that strict executables leave no room for override at runtime.
Apart from the fact that strict cannot be disabled there is otherwise no
difference between legacy and strict compliance modes.

I believe the strict option is really intended for conscious use so that
programmers who know they need it, can use it. Ordinary users still get the
casual safety they need as legacy objects are just as good as strict until
overridden. If we lose the ability to override then in some environments we
will accumulate lots of needlessly strict executables just because of a tools
upgrade whereas the old tools would have generated executables that were as
safe but also could be overridden by kernel options. 

Allowing legacy objects to be generated may also allow the linkage rules to
be tightened.  I.e. Forcing a relaxed mode at link time could simply fail
if confronted by a strict object instead only allowing legacy objects to
be relaxed.

A default build of GCC and binutils would therefore still generate legacy
objects until someone consciously updated the configure options or used
command line options.

Thanks,
Matthew


Re: Machine constraints list

2016-05-16 Thread Michael Eager

On 05/08/2016 03:27 PM, David Wohlferd wrote:

Looking at the v6 release criteria (https://gcc.gnu.org/gcc-6/criteria.html) 
there are about a dozen
supported platforms.

Looking at the Machine Constraints docs
(https://gcc.gnu.org/onlinedocs/gcc/Machine-Constraints.html), there are 34 
architectures listed.
That's a lot of entries to scroll thru.  If these architectures aren't 
supported anymore, is it time
to drop some of these from this page?


I don't believe that the listing of Primary or Secondary Platforms
should be considered an exhaustive list of the supported architectures.



As a first pass, maybe something like this:

...
> Drop
...

MicroBlaze—config/microblaze/constraints.md


MicroBlaze should continue to be supported.


--
Michael Eagerea...@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077



my student enjoyed your page

2016-05-16 Thread Jessica Lowe
Hello,

My name is Jessica Lowe, I am a middle school teacher in Colorado. I have been 
working with a student of mine who is interested in learning more about 
computer coding and programming. I was doing some research and finding some 
sources for him, and I found your page https://gcc.gnu.org/readings.html to be 
very helpful and informative, and wanted to thank you. 

I also came across this article 
http://ithare.com/a-beginners-guide-to-programming-languages/ about programming 
for beginners, and I thought it was a great starting point for Jason, my 
student, or anyone who is interested in learning more about computer 
programming and coding. I thought it would be great to add to your resources so 
others could have access to it.

Thanks again for all of the great information, Myself and Jason both really 
appreciate it. It definitely has put him in the right direction in advancing 
towards a potential career in this field. Have a great day and please let me 
know if you are able to add the article, I would love to show Jason and know we 
were able to contribute something!

Best Wishes

Jessica Lowe
jess...@mrslowe.com


Successful bootstrap and install of gcc (GCC) 6.1.0 on armv5tel-unknown-linux-gnueabi

2016-05-16 Thread Aaro Koskinen
Hi,

Here's a report of a successful build and install of GCC:

$ gcc-6.1.0/config.guess
armv5tel-unknown-linux-gnueabi

$ newcompiler/bin/gcc -v
Using built-in specs.
COLLECT_GCC=newcompiler/bin/gcc
COLLECT_LTO_WRAPPER=/mnt/gcctest/newcompiler/libexec/gcc/arm-unknown-linux-gnueabi/6.1.0/lto-wrapper
Target: arm-unknown-linux-gnueabi
Configured with: ../gcc-6.1.0/configure --with-arch=armv4t --with-float=soft 
--disable-nls --prefix=/mnt/gcctest/newcompiler --enable-languages=c,c++ 
--host=arm-unknown-linux-gnueabi --build=arm-unknown-linux-gnueabi 
--target=arm-unknown-linux-gnueabi --with-system-zlib --with-sysroot=/
Thread model: posix
gcc version 6.1.0 (GCC) 

-- Build environment --

host: openrd-client
distro:   los.git rootfs=71e48 native=71e48
kernel:   Linux 4.6.0-rc5-mvebu-los_71e48
binutils: GNU binutils 2.26.20160125
make: GNU Make 4.1
libc: GNU C Library (GNU libc) stable release version 2.23
zlib: 1.2.8
mpfr: 3.1.3
gmp:  6

-- Time consumed --

configure:  real0m 29.17s
user0m 19.98s
sys 0m 1.70s

bootstrap:  real33h 31m 03s
user32h 13m 26s
sys 32m 6.62s

install:real3m 47.36s
user2m 30.66s
sys 0m 20.19s

-- Hardware details ---

MemTotal: 513148 kB

processor   : 0
model name  : Feroceon 88FR131 rev 1 (v5l)
BogoMIPS: 1196.85
Features: swp half thumb fastmult edsp 
CPU implementer : 0x56
CPU architecture: 5TE
CPU variant : 0x2
CPU part: 0x131
CPU revision: 1

Hardware: Marvell Kirkwood (Flattened Device Tree)
Revision: 
Serial  : 

A.


Re: (R5900) Implementing Vector Support

2016-05-16 Thread Richard Henderson

On 05/15/2016 03:43 AM, Woon yung Liu wrote:

  testv.c:70:2: note: ==> examining statement: _5 = (int) _4;


You need to implement the vec_unpack* patterns.


But how can I tell what operations are required by autovectorization, that are 
currently not supported?


Well, the dumps you're looking at are the start.  But it also requires that you 
look through tree-vect-stmts.c.




My port is still missing the instructions for initializing vectors, and
inserting/setting and extracting values from vectors. They aren't
implemented yet because I haven't figured out how to implement them; the
documentation describes them as simple operations, but yet the
implementations within mips.c do a lot more things!


Efficient vector initialization requires that we detect some common cases.  We 
do that before the fully general mips_expand_vi_general.



r~


Re: (R5900) Implementing Vector Support

2016-05-16 Thread Richard Henderson

On 05/14/2016 03:21 AM, Woon yung Liu wrote:

The current constraints allow GCC to access the 64-bit LO+HI register pair
as a single 128-bit register, so I am cheating by using both the x and wr
(new constraint for LO1+HI1) constraints.


That doesn't seem right.

The x constrant is for the hi/lo pair, whatever size it is.  You should be able 
to use that just fine with a 256 bit mode.



r~



ARM gold unknown option.

2016-05-16 Thread Umesh Kalappa
Hi All ,

We are migrating to the gold linker and see the below issue


bash-4.1$ /auto/compiler-migration/bin/armeb-linux-gnueabi-ld.gold --be8

/auto/compiler-migration/bin/armeb-linux-gnueabi-ld.gold: --be8: unknown option


Any help ,will be appreciated .

Thank you
~Umesh