Message from @picnicnapkin
Discord ID: 464432191678447616
no
huh
He can manually control the optimizer passes to convince the compiler to do a 4th inlining.
The optimizer is derived from something I assume
Clang is a front-end for LLVM.
ah
He's not a LLVM programmer, although Clang is their most important front-end.
I mean, he's not responsible for LLVM itself.
back when I did embedded stuff we would mess with the runtime to create different runmodes, and we did stuff like made generic unrolled loops for rasterizing and we'd put them straight into the runtime
so basically to do a draw cycle we'd use a DMI call to switch runmode
for some reason that came to mind just now but thiking about it there's absolutely no way that's how clang is doing any sort of optimizaiton
*incomplete thought - the crt had a size limit so in my head optimized code + limit to 3 connected to that
none of this is making any sense is it
I should probaly take a break soon
Clang doesn't optimize. It just spits out correct IR to LLVM.
Well, according to the previous talk, Clang only tries to remove dead code.
makes sense
He talks about how LLVM does bottom-up passes, while GCC does top-down. Both with fallback heuristics that try to work the other way around in special cases.
You're making me want to get into a big C++ project again. I haven't done a big C++ project in probably ~2 years now
i have a love/hate relationship with C++, but its the thing i use the most.
jesus christ
entire published "packages" to determine whether a number is odd or even lol
I've had a C++ fetish since I was maybe 13 or so. I tried to learn it on my own for years, went through tons of books, ended up properly learning C at about 15 and doing a bunch of embedded stuff in C with increaing ammounts of ASM mixed in, then really got back into C++ maybe from when I was 17 or so. I ended up completely disliking a lot of featues like STL at the time (and still today kinda) because they were so overused at the time, so I coded most of my own stuff with pretty much only the basic features of C++ with a ton of low level style C'ish code
now I've been spoiled by languges like Ruby so I end up using a ton of the new features and completely abuse Boost
yeah started with C, did quite a bit of embedded stuff (and FPGA/hardware) in university, and C++, and then mostly did C++ in jobs and grad school. I like STL, but I hate when people abuse it and do stupid shit with it... using it wrong can be _really_ bad for performance
i've seen STL heavy programs spend 30%+ of total runtime in `new` and `delete`
back when I was getting into it I think STL was fairly new and people would do shit like completely rewrite completely functional libraries to be super abstracted with STL.. So you'd use them and get insane errors that were just super abstract
It's so much better now.
it's come a long way yeah
and if STL doesnt have it, then boost probably does
agreed
I just can't stand not having RAII and Rule Of Zero.
man i still get confused about move semantics and that shit sometimes
why RAII?
Most of the time you don't even have to remember about moves.
Like, `T&&`.
Just take by value.
I guess, but I kinda feel like that's part of what makes it a ~C language
RAII, let all resource cleanup happen automatically. Suddenly you notice 90% of your destructors are empty, the other 10% is trivial.
And you barely need `try/catch`.