News for hackers. Stuff that matters.
Re:Why Const Doesn't Make C Code Faster by pingyong on Tuesday August 20, 2019 @05:11AM (#20745009)
>__attribute__((const)) which tells it that the func accesses NOTHING but the params, not even global vars.

If you're actually not accessing any global state at all (including making no memory allocation), shouldn't the compiler figure that out anyway? That doesn't seem like something that would be very hard to check for.

Re:Why Const Doesn't Make C Code Faster by gpderetta on Tuesday August 20, 2019 @05:59AM (#20745207)
Not if it is defined in another translation unit and you are not using LTO.
Re:Why Const Doesn't Make C Code Faster by fluffything on Tuesday August 20, 2019 @07:46AM (#20745783)
In other words, the compiler can infer this from the function definition (or at least clang does), but it cannot infer this from a function declaration, because the implementation is missing - unless you are using LTO like the parent mentions.
Re:Why Const Doesn't Make C Code Faster by dmitrygr on Tuesday August 20, 2019 @04:35PM (#20751793)
sometimes it cannot infer it even from function, for example, here is a function that in my particular OS gets me a pointer to my library's globals. To my code the returned pointer never changes, but the compiler has NO way to tell this function is const without my annotation

  void* __attribute__((const)) getGlobals(void) {
    void* ret;

    asm (
      " ldr %0, [r9]      \n"
      " ldr %0, [%0, %1]  \n"
      : "=r"(ret)
      : "I"(MY_MODULE_ID)
      :
    );
    return ret;
  }
Re:Why Const Doesn't Make C Code Faster by gpderetta on Tuesday August 20, 2019 @10:18PM (#20754068)
Good point.