V8 Project
v8::internal::anonymous_namespace{flags.cc}::Flag Struct Reference
+ Collaboration diagram for v8::internal::anonymous_namespace{flags.cc}::Flag:

Public Types

enum  FlagType {
  TYPE_BOOL , TYPE_MAYBE_BOOL , TYPE_INT , TYPE_FLOAT ,
  TYPE_STRING , TYPE_ARGS
}
 

Public Member Functions

FlagType type () const
 
const char * name () const
 
const char * comment () const
 
boolbool_variable () const
 
MaybeBoolFlag * maybe_bool_variable () const
 
intint_variable () const
 
double * float_variable () const
 
const char * string_value () const
 
void set_string_value (const char *value, bool owns_ptr)
 
JSArguments * args_variable () const
 
bool bool_default () const
 
int int_default () const
 
double float_default () const
 
const char * string_default () const
 
JSArguments args_default () const
 
bool IsDefault () const
 
void Reset ()
 

Public Attributes

FlagType type_
 
const char * name_
 
void * valptr_
 
const void * defptr_
 
const char * cmt_
 
bool owns_ptr_
 

Detailed Description

Definition at line 30 of file flags.cc.

Member Enumeration Documentation

◆ FlagType

enum v8::internal::anonymous_namespace{flags.cc}::Flag::FlagType

Member Function Documentation

◆ args_default()

JSArguments v8::internal::anonymous_namespace{flags.cc}::Flag::args_default ( ) const
inline

Definition at line 105 of file flags.cc.

105  {
106  DCHECK(type_ == TYPE_ARGS);
107  return *reinterpret_cast<const JSArguments*>(defptr_);
108  }
#define DCHECK(condition)
Definition: logging.h:205

References DCHECK.

◆ args_variable()

JSArguments* v8::internal::anonymous_namespace{flags.cc}::Flag::args_variable ( ) const
inline

Definition at line 80 of file flags.cc.

80  {
82  return reinterpret_cast<JSArguments*>(valptr_);
83  }

References DCHECK.

◆ bool_default()

bool v8::internal::anonymous_namespace{flags.cc}::Flag::bool_default ( ) const
inline

Definition at line 85 of file flags.cc.

85  {
87  return *reinterpret_cast<const bool*>(defptr_);
88  }

References DCHECK.

◆ bool_variable()

bool* v8::internal::anonymous_namespace{flags.cc}::Flag::bool_variable ( ) const
inline

Definition at line 47 of file flags.cc.

47  {
49  return reinterpret_cast<bool*>(valptr_);
50  }

References DCHECK.

◆ comment()

const char* v8::internal::anonymous_namespace{flags.cc}::Flag::comment ( ) const
inline

Definition at line 45 of file flags.cc.

45 { return cmt_; }

◆ float_default()

double v8::internal::anonymous_namespace{flags.cc}::Flag::float_default ( ) const
inline

Definition at line 95 of file flags.cc.

95  {
97  return *reinterpret_cast<const double*>(defptr_);
98  }

References DCHECK.

◆ float_variable()

double* v8::internal::anonymous_namespace{flags.cc}::Flag::float_variable ( ) const
inline

Definition at line 62 of file flags.cc.

62  {
64  return reinterpret_cast<double*>(valptr_);
65  }

References DCHECK.

◆ int_default()

int v8::internal::anonymous_namespace{flags.cc}::Flag::int_default ( ) const
inline

Definition at line 90 of file flags.cc.

90  {
91  DCHECK(type_ == TYPE_INT);
92  return *reinterpret_cast<const int*>(defptr_);
93  }

References DCHECK.

◆ int_variable()

int* v8::internal::anonymous_namespace{flags.cc}::Flag::int_variable ( ) const
inline

Definition at line 57 of file flags.cc.

57  {
58  DCHECK(type_ == TYPE_INT);
59  return reinterpret_cast<int*>(valptr_);
60  }

References DCHECK.

◆ IsDefault()

bool v8::internal::anonymous_namespace{flags.cc}::Flag::IsDefault ( ) const
inline

Definition at line 111 of file flags.cc.

111  {
112  switch (type_) {
113  case TYPE_BOOL:
114  return *bool_variable() == bool_default();
115  case TYPE_MAYBE_BOOL:
116  return maybe_bool_variable()->has_value == false;
117  case TYPE_INT:
118  return *int_variable() == int_default();
119  case TYPE_FLOAT:
120  return *float_variable() == float_default();
121  case TYPE_STRING: {
122  const char* str1 = string_value();
123  const char* str2 = string_default();
124  if (str2 == NULL) return str1 == NULL;
125  if (str1 == NULL) return str2 == NULL;
126  return strcmp(str1, str2) == 0;
127  }
128  case TYPE_ARGS:
129  return args_variable()->argc == 0;
130  }
131  UNREACHABLE();
132  return true;
133  }
enable harmony numeric enable harmony object literal extensions Optimize object Array DOM strings and string trace pretenuring decisions of HAllocate instructions Enables optimizations which favor memory size over execution speed maximum source size in bytes considered for a single inlining maximum cumulative number of AST nodes considered for inlining trace the tracking of allocation sites deoptimize every n garbage collections perform array bounds checks elimination analyze liveness of environment slots and zap dead values flushes the cache of optimized code for closures on every GC allow uint32 values on optimize frames if they are used only in safe operations track concurrent recompilation artificial compilation delay in ms do not emit check maps for constant values that have a leaf deoptimize the optimized code if the layout of the maps changes enable context specialization in TurboFan execution budget before interrupt is triggered max percentage of megamorphic generic ICs to allow optimization enable use of SAHF instruction if enable use of VFP3 instructions if available enable use of NEON instructions if enable use of SDIV and UDIV instructions if enable use of MLS instructions if enable loading bit constant by means of movw movt instruction enable unaligned accesses for enable use of d16 d31 registers on ARM this requires VFP3 force all emitted branches to be in long enable alignment of csp to bytes on platforms which prefer the register to always be NULL
#define UNREACHABLE()
Definition: logging.h:30
MaybeBoolFlag * maybe_bool_variable() const
Definition: flags.cc:52

References NULL, and UNREACHABLE.

◆ maybe_bool_variable()

MaybeBoolFlag* v8::internal::anonymous_namespace{flags.cc}::Flag::maybe_bool_variable ( ) const
inline

Definition at line 52 of file flags.cc.

52  {
54  return reinterpret_cast<MaybeBoolFlag*>(valptr_);
55  }

References DCHECK.

◆ name()

const char* v8::internal::anonymous_namespace{flags.cc}::Flag::name ( ) const
inline

Definition at line 43 of file flags.cc.

43 { return name_; }

Referenced by v8::internal::compiler::LinkageHelper< LinkageTraits >::GetRuntimeCallDescriptor().

+ Here is the caller graph for this function:

◆ Reset()

void v8::internal::anonymous_namespace{flags.cc}::Flag::Reset ( )
inline

Definition at line 136 of file flags.cc.

136  {
137  switch (type_) {
138  case TYPE_BOOL:
140  break;
141  case TYPE_MAYBE_BOOL:
142  *maybe_bool_variable() = MaybeBoolFlag::Create(false, false);
143  break;
144  case TYPE_INT:
145  *int_variable() = int_default();
146  break;
147  case TYPE_FLOAT:
149  break;
150  case TYPE_STRING:
152  break;
153  case TYPE_ARGS:
155  break;
156  }
157  }
void set_string_value(const char *value, bool owns_ptr)
Definition: flags.cc:72

Referenced by v8::internal::FlagList::ResetAllFlags().

+ Here is the caller graph for this function:

◆ set_string_value()

void v8::internal::anonymous_namespace{flags.cc}::Flag::set_string_value ( const char *  value,
bool  owns_ptr 
)
inline

Definition at line 72 of file flags.cc.

72  {
74  const char** ptr = reinterpret_cast<const char**>(valptr_);
75  if (owns_ptr_ && *ptr != NULL) DeleteArray(*ptr);
76  *ptr = value;
77  owns_ptr_ = owns_ptr;
78  }
void DeleteArray(T *array)
Definition: allocation.h:68

References DCHECK, v8::internal::DeleteArray(), and NULL.

+ Here is the call graph for this function:

◆ string_default()

const char* v8::internal::anonymous_namespace{flags.cc}::Flag::string_default ( ) const
inline

Definition at line 100 of file flags.cc.

100  {
102  return *reinterpret_cast<const char* const *>(defptr_);
103  }

References DCHECK.

◆ string_value()

const char* v8::internal::anonymous_namespace{flags.cc}::Flag::string_value ( ) const
inline

Definition at line 67 of file flags.cc.

67  {
69  return *reinterpret_cast<const char**>(valptr_);
70  }

References DCHECK.

◆ type()

FlagType v8::internal::anonymous_namespace{flags.cc}::Flag::type ( ) const
inline

Definition at line 41 of file flags.cc.

41 { return type_; }

Member Data Documentation

◆ cmt_

const char* v8::internal::anonymous_namespace{flags.cc}::Flag::cmt_

Definition at line 38 of file flags.cc.

◆ defptr_

const void* v8::internal::anonymous_namespace{flags.cc}::Flag::defptr_

Definition at line 37 of file flags.cc.

◆ name_

const char* v8::internal::anonymous_namespace{flags.cc}::Flag::name_

Definition at line 35 of file flags.cc.

◆ owns_ptr_

bool v8::internal::anonymous_namespace{flags.cc}::Flag::owns_ptr_

Definition at line 39 of file flags.cc.

◆ type_

FlagType v8::internal::anonymous_namespace{flags.cc}::Flag::type_

Definition at line 34 of file flags.cc.

◆ valptr_

void* v8::internal::anonymous_namespace{flags.cc}::Flag::valptr_

Definition at line 36 of file flags.cc.


The documentation for this struct was generated from the following file: