Message from @DanielKO
Discord ID: 464423490095808523
I'm watching this. Quite interesting, on how LLVM does some optimizations.
"Const methods and const references play no role in the LLVM optimizer."
this guy's talks are typically pretty good
Trying to help out on a node project and it's using "knex" to build DB queries. I have no idea why anyone would use this, the code is literally longer and more complex than just a raw sql query. It doesn't even completely abstract database types like a proper ORM would.
seriously why is the JS world so full of shit
Because JS programmers.
JS web apps are the reason humanity deserves nuclear annihilation
radical Islam > JS
I should become an imam and declare a jihad on using unmaintained node packages in production software
Best followup talk.
I'll watch that in a bit, that looks good
LLVM can do up to 3 inline optimizations, and he still doesn't know why.
... huh
runtime overhead limit?
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
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.
and i totally agree about JS, and Node especially
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