[14/*] As an example of a possible direction to go, perhaps we could have a new directive to the compiler that you could bracket pieces of code with that you have crafted carefully and analyzed.
-
Show this thread
-
[15/*] This directive could do some things, like limit reordering, try to translate intrinsics as directly as possible, etc., with an emphasis on _predictability_ rather than speed.
1 reply 1 retweet 21 likesShow this thread -
[16/*] This would allow programmers to have some confidence that when they've worked out the best way to do something, they can lock that in and know it won't get undone by crazy optimizer steps.
1 reply 0 retweets 21 likesShow this thread -
[17/*] The only alternative to something like this would be to write these parts in inline assembler, which honestly, would be fine with me - except the syntax for inline assembler is so horrid that it makes it very unpleasant to use.
2 replies 0 retweets 12 likesShow this thread -
[18/*] So another option would be to get serious about inline assembler, and make a pleasant-to-use, well specific ASM syntax that can be placed in C. I'd be fine with either.
3 replies 0 retweets 18 likesShow this thread -
[19/*] What I'm increasingly less fine with is constantly having to struggle with CLANG to get it to _stop_ doing crazy things to routines that were already basically optimal if it just translated them directly. It's very frustrating, and sometimes literally can't be fixed :(
1 reply 0 retweets 20 likesShow this thread -
[20/*] That's all. I figured this has happened enough times now that I should post something about it.
8 replies 0 retweets 21 likesShow this thread -
Replying to @cmuratori
This is where I'm at with the inline assembly in JAI, don't have to crawl through the intrinsics _or_ double check the generated code!pic.twitter.com/MqtEnCImDi
4 replies 1 retweet 13 likes -
Replying to @rflaherty71
I feel like the variable declarations make things harder to read (since it doubles the size of the code). Is there any way to get that more in-line? ASM obviously never has it since you don't "declare" things, but maybe this could have it in with the variables, or something?
1 reply 0 retweets 0 likes -
Replying to @cmuratori
Hmm, I could see B0 := pcmpeqq.y A, [B] maybe. This would only then work where the first arg is writeonly. You could also of course do B0, B1, B2, B3: vec or B0: vec; pcmpeqq.y B0, A, [B] on the same line. You could also do pcmpeqq.y B0: vec, A, [B] maybe?
1 reply 0 retweets 0 likes
Could there just be a keyword on the asm directive that said "new destination variables are auto declared"? That way if you want to write something that just looks like ASM, it will work?
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.