Give purity hints to compiler to avoid penalizing repeated calls to some functions.
<https://webkit.org/b/121744>

Reviewed by Darin Adler.

Source/WebCore:

Mark the following functions pure:

    - gcController()
    - cssValuePool()
    - threadGlobalData()

I had this idea when I saw Darin's patch to cache cssValuePool() in a local.
We know that this function will always return the same value, so we should just
share this knowledge with the compiler and let it do the cleverness instead.

Source/WTF:

Added a PURE_FUNCTION macro. This is supported on GCC and Clang for now.
Marking a function pure means that the compiler's CSE pass is free to coalesce
multiple calls to this function because it has no globally observable side
effects beyond the first call.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@156246 268f45cc-cd09-0410-ab3c-d52691b4dbfc