This is huge- you can now do this on a laptop
Although it seems obvious that this might be a good idea, why would it
1) use exorbitant amounts of memory; and
2) be "pretty awesome" instead of, say, mildly useful?
edit: And both questions satisfactorily answered in the time it took me to peruse the preamble of https://en.wikipedia.org/wiki/Interprocedural_optimization
Thank you!
Firstly, apparently IBM chips have hardware transactional memory now:
PowerPC / PowerPC64 / RS6000
GCC now supports Power ISA 2.07, which includes support
for Hardware Transactional Memory (HTM)
S/390, System z
Support for the Transactional Execution Facility
included with the IBM zEnterprise zEC12 processor has
been added.
That's pretty cool.Also on the 390:
S/390, System z
The hotpatch features allows to prepare functions for
hotpatching. A certain amount of bytes is reserved
before the function entry label plus a NOP is inserted
at its very beginning to implement a backward jump when
applying a patch. The feature can either be enabled via
command line option -mhotpatch for a compilation unit
or can be enabled per function using the hotpatch
attribute.
I guess if you're doing high availability the mainframe way, you don't get to restart your apps to patch them. That's terrifying, but again, pretty cool.https://www-950.ibm.com/events/wwe/grp/grp030.nsf/vLookupPDF...
I don't personally notice a change though, IMHO releases have been fairly consistently released since the 4.0 timeframe.
> As of this time no releases of GCC 4.9 have yet been made.
I wonder if anyone is working to standardize something like this? It would be way more useful than all those _s() functions they added to C11.
I also disagree with some of the interface choices, for example when strlcpy() fails it tells you how many characters you needed, not simply "error" as in strcpy_s. Also the use case for memcpy_s() is extremely limited. It just seems like the _s() functions were rushed and stuck in there without regard for what makes sense.
It is also nice to see more parity with Clang when it comes to diagnostics and ASan/UBSan.
-march=nehalem, westmere, sandybridge, ivybridge, haswell,
bonnell, broadwell, silvermont
Also this: -mtune=intel can now be used to generate code running well
on the most current Intel processors, which are Haswell
and Silvermont for GCC 4.9.