On 2013-05-31, at 1:43 PM, Vladimir Kozlov <vladimir.koz...@oracle.com> wrote:
> On 5/31/13 7:42 AM, David Chase wrote: >> >> The current plumbing for the XX option does affect code flow in the compiled >> C; that was pretty much the entire point of it. Vladimir has a plan, I >> think his attitude is that if convert this into an intrinsic then we won't >> care about compiler version or updating the code to get rid of the >> assembler, it will just be done, for good. My POV is that for now it's >> done, and we don't have to touch it for a good long while (except that I >> left Windows unoptimized). > > My biggest concern about the assembler code in jdk is its support. Even if > you document how you got ".byte 0xc4,0xe3", next person will have very hard > time to fix/modify this code. From my point of view it is dead code. To modify it would be to break it :-). I see this mostly as a matter of division of concerns; the only reason I know of to modify it would be if the scheduling on some future processor was radically different; I did get different code from clang and gcc, but not substantially different, and I could not tell if there was a reliable difference in run times. Unless we put ourselves in the business of knowing how those particular intrinsics like to be scheduled on different processors -- and I cannot see that being worth our time unless there is a huge difference -- I assume we're going to be about as inflexible as pre-compiled assembly language, and if a big change occurs, by then we can recompile the C code. And unless we plan to derive the schedule algorithmically, even if we do generate specific schedules for specific machines, we'll probably just have them canned in the compiler -- probably a larger text footprint than just precompiling both versions of the code and choosing a function pointer to the better one at runtime. > About intrinsic. It will work on all OSs (including Windows) and don't need > special versions of gcc, c++. But, it looks like, I need an other week to > finish it. And I am worried about startup performance of intrinsic vs asm in > jdk. It would be nice if we updated the reference versions of the compilers for jdk8, so that they were no longer "special". David