Cleaned up nil comparisons in Hydrogen.

This consists basically of 2 parts:

   * Restructured BuildCompareNil to make the logic behind it clearer.
     Note that it is intentionally written in a quite stylized way.

   * Replaced a usesless IfBuilder by a plain HInstruction, removing
     some empty blocks.

R=danno@chromium.org

Review URL: https://codereview.chromium.org/22305004

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@16266 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Revert "Add (mostly Chromium-compatible) V8_OS_* defines to v8.gyp."

This reverts commit r16238 for not being able to use the defines
outside of libv8 (i.e. in tests). Will reland the #define's in a
build config header style.

R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/22861022

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@16267 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Drop unused rdtsc instruction.

We do not use rdtsc anywhere and we won't ever use that in the
future, as it is totally unusable with multicore and out of
order execution.

R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/23112016

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@16268 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Never clear debug-stub call ICs. Make a clear distinction between is_debug_stub
used everywhere but the debugger, and IsDebugBreak, used by the debugger.

R=yangguo@chromium.org

Review URL: https://chromiumcodereview.appspot.com/23361014

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@16269 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Prepare push to trunk.  Now working on version 3.21.3.

R=yangguo@chromium.org
BUG=

Review URL: https://chromiumcodereview.appspot.com/22801011

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@16270 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix deoptimization bug, where recursive call can frighten and confuse the unwitting, simple, poor caveman that is Runtime_NotifyDeoptimized.

BUG=274164
R=mstarzinger@chromium.org

Review URL: https://codereview.chromium.org/23201016

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@16273 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Remove dead methods related to InformativeDefinitions.

BUG=
R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/22914029

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@16274 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Remove special case code for generalizing constants to fields.

R=bmeurer@chromium.org

Review URL: https://chromiumcodereview.appspot.com/22911018

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@16275 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix hidden properties on object with frozen prototype.

This fixes a corner-case where a frozen prototype with existing hidden
properties might prevent setting hidden properties on another object.

R=rossberg@chromium.org
BUG=v8:2829

Review URL: https://codereview.chromium.org/22799021

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@16276 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Make HConstant::InstanceOf less ambiguous.

R=verwaest@chromium.org

Review URL: https://codereview.chromium.org/23203002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@16279 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Rename "parallel recompilation" to "concurrent recompilation".

Also introduced macros for flag aliases for temporary backwards compatibility.

R=hpayer@chromium.org
BUG=

Review URL: https://codereview.chromium.org/23014007

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@16280 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Move OS/compiler/feature detection to public v8config.h header.

From now on the v8config.h header should be the one and
only file where we do (freaky) checks to detect OS, C++
compiler or certain compiler features. Since we need that
both internally and for the public API, the new v8config.h
is the proper place to add (everything is prefixed with V8_
so we are safe).

R=svenpanne@chromium.org

Review URL: https://codereview.chromium.org/23248006

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@16281 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Clean up the redundant Int32Constant check which is covered by double case

BUG=
R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/22815032

Patch from Weiliang Lin <weiliang.lin2@gmail.com>.

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@16282 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
grokdump: fix Oddball printing

R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/22852021

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@16283 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Rewrite SamplingCircularQueue

The new implementation:
* uses MemoryBarriers to make sure up-to-date data is accessed on both producer and consumer threads
* will not allow to overwrite records
* doesn't have notion of chunks, instead each entry is aligned on the cache line boundaries

BUG=v8:2814
R=bmeurer@chromium.org

Review URL: https://codereview.chromium.org/22849002

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@16284 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix compilation on Windows after r16284

BUG=None
R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/23361023

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@16285 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix scoping of function declarations in eval inside non-trivial local scope

R=mstarzinger@chromium.org
BUG=v8:2594

Review URL: https://codereview.chromium.org/22901010

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@16286 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix crashes of some CPU profiler tests on Windows after r16284

All the tests that started crashing create ProfilerEventsProcessor on the stack. After r16284 SamplingCircularQueue buffer is allocated as a field of the queue instead of separate heap object. This increased self size of ProfilerEventsProcessor by about 1Mb. Windows malloc fails to allocate such an object on the stack and crashes.

BUG=
R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/23093022

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@16287 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Cleanup and speedup MarkCompactCollector test case.

R=bmeurer@chromium.org
TEST=cctest/test-mark-compact/MarkCompactCollector

Review URL: https://codereview.chromium.org/23112026

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@16288 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
Fix crash due RegExpAtom method called on RegExpCharacterClass object.

In the RegExpUnparser::VisitText(RegExpText* that, void* data) function always RegExpUnparser::VisitAtom function called via that->elements()->at(i).data.u_atom->Accept(this, data); even if the type of the object is RegExpCharacterClass.

The problem shows using g++ 4.7(.2, .3) since r16232, since GCC optimizes virtual method calls to direct calls based on __final/final hints. Tested on MIPS and x64:
Program received signal SIGSEGV, Segmentation fault.
0x0000000000588928 in v8::internal::RegExpUnparser::VisitAtom(v8::internal::RegExpAtom*, void*) ()

This cleans up the TextElement class to avoid the unsafe+unchecked union access, that caused the crash.

TEST=cctest/test-regexp/ParserRegression
R=jkummerow@chromium.org

Review URL: https://codereview.chromium.org/22815033

git-svn-id: https://v8.googlecode.com/svn/branches/bleeding_edge@16289 ce2b1a6d-e550-0410-aec6-3dcde31c8c00