rewrite OptimizeGlobalAddressOfMalloc to fix PR6422, some bugs