Many Questions, 1.How is theinstruction set for a particular processor determined? ex(AVX)Do the mechanics/design of the processordictate the Instruction Setpossibilities or In Theory can I create a new instruction set for a given processor? Please Explain. 2. Does the compiler compile into these cpuinstructions or is there a language/code between compiled code and cpu instruction? Please Explain. 3. What language is best to write a compiler or is the compiler written from the AVX instruction set? Please Explain. 4. What language is best to write the Operating System (OS)? If the compiler does not take full control of AVX, I assume the OS will be limited. Assuming we use every instruction available in the AVX, I assume maximum potential for the OS. Are all langauges capable of writing an OS and or Compiler capable of maximum potential, if not which language gives most potential? Please Explain.
Answer to any of these questions will serve as answering my question. Thanks
You could entertain yourself a while looking up the flame wars on some of these topics. 1. You might compare the AVX docs with the previous IA ones, and see how AVX adds features in steps. 2. Intel compilers default to direct code generation, for compilation performance, while there are options to produce assembly code specified by the OS. You could study the gnu compiler organization, where the front end generates rtl and the .md specifies how rtl translates to assembly code. Likewise, Intel compiler front ends generate Intermediate Language, and there are compile flags, not publicly documented, to display it. 3. Fortunately, the language flame wars haven't been rekindled for AVX. I doubt there was any discussion of breaking new ground; I suppose the Intel compiler is written mostly in C++, while the gnu compiler is C. You can read about efforts to change gnu from C to C++. You can read about AVX, after which I think you may doubt whether AVX does much to help with compilation. I don't think you'll find anyone planning to sell compilers which require the AVX ISA to run, any more than current compilers require SSE4 or the like. You could build a copy of gcc with AVX options (although gcc doesn't support AVX-256) and run it on the SDE emulator, comparing with a copy made with standard options. 4. You can read all about linux and kernel compilation and near flame wars on the subject. If you don't find anything about using AVX to support the OS, you can assume no one has moved in that direction. It's more the other way; the OS has to be extended to save restore and protect the new registers. For example, although Windows Vista would run on the future AVX platform, it would not support use of AVX instructions, as Windows 7 would do. Windows 7 would still run on an SSE2 platform.