LLVM: include/llvm/Target/TargetOptions.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14#ifndef LLVM_TARGET_TARGETOPTIONS_H

15#define LLVM_TARGET_TARGETOPTIONS_H

16

19

20#include

21

22namespace llvm {

23 struct fltSemantics;

24 class MachineFunction;

25 class MemoryBuffer;

26

27 namespace FloatABI {

29 Default,

31 Hard

33 }

34

35 namespace FPOpFusion {

37 Fast,

38 Standard,

39 Strict

41 }

42

43 namespace JumpTable {

45 Single,

46 Arity,

47 Simplified,

48

49

50 Full

52 }

53

54 namespace ThreadModel {

57 Single

59 }

60

62 All,

63

64 List,

65

66

67 Preset,

68

69

70 None

71 };

72

75 Default,

76 EABI4,

79 };

80

81

82

83

84

85

86

87

88

89

90

91

92

93

95 Default,

96 GDB,

97 LLDB,

98 SCE,

99 DBX

100 };

101

102

103

105 Disable,

106 Enable,

107 DisableWithDiag

108 };

109

110

112

113

115

117

119 };

120

121

122

130 };

131

133 public:

157

158

159

161

162

163

164

166

167

168

170

171

172

173

174

175

177

178

179

180

181

183

184

185

186

187

189

190

191

192

194

195

196

197

198

200

201

202

203

204

206

207

208

209

210

212

213

214

215

216

217

218

219

222

223

224

225

227

228

229

230

231

232

233

235

236

237

238

239

241

242

243

244

246

247

249

250

251

253

254

255

258

259

260

262

263

265

266

268

269

271

272

274

275

277

279

280

282

283

285

286

288

289

290

292

293

295

296

297

299

300

302

303

305

306

308

309

311

312

314

315

317

318

320

321

322

324

325

327

328

329

331

332

333

334

336

338

339

340

341

343

344

346

347

348

349

351

352

354

355

357

358

359

361

362

364

365

367

368

370

371

373

374

375

377

378

379

381

382

383

384

385

387

388

389

390

392

393

395

396

397

398

399

400

401

403

404

405

406

407

408

409

410

411

412

413

414

415

416

417

418

419

421

422

423

425

426

428

429

431

432 private:

433

435

436

437

439

440 public:

442 FPDenormalMode = Mode;

443 }

444

446 FP32DenormalMode = Mode;

447 }

448

450 return FPDenormalMode;

451 }

452

454 return FP32DenormalMode;

455 }

456

458

459

461

462

464

465

466

467

469 };

470

471}

472

473#endif

Utilities for dealing with flags related to floating point properties and mode controls.

static cl::opt< RegAllocEvictionAdvisorAnalysis::AdvisorMode > Mode("regalloc-enable-advisor", cl::Hidden, cl::init(RegAllocEvictionAdvisorAnalysis::AdvisorMode::Default), cl::desc("Enable regalloc advisor mode"), cl::values(clEnumValN(RegAllocEvictionAdvisorAnalysis::AdvisorMode::Default, "default", "Default"), clEnumValN(RegAllocEvictionAdvisorAnalysis::AdvisorMode::Release, "release", "precompiled"), clEnumValN(RegAllocEvictionAdvisorAnalysis::AdvisorMode::Development, "development", "for training")))

void setFP32DenormalMode(DenormalMode Mode)

DenormalMode getDenormalMode(const fltSemantics &FPType) const

unsigned UnsafeFPMath

UnsafeFPMath - This flag is enabled when the -enable-unsafe-fp-math flag is specified on the command ...

unsigned VerifyArgABICompliance

When set to true, call/return argument extensions of narrow integers are verified in the target backe...

unsigned EnableTLSDESC

EnableTLSDESC - This flag enables TLS Descriptors.

unsigned EmitStackSizeSection

Emit section containing metadata on function stack sizes.

unsigned XCOFFReadOnlyPointers

When set to true, const objects with relocatable address values are put into the RO data section.

unsigned EmitAddrsig

Emit address-significance table.

unsigned EnableAIXExtendedAltivecABI

EnableAIXExtendedAltivecABI - This flag returns true when -vec-extabi is specified.

unsigned UseInitArray

UseInitArray - Use .init_array instead of .ctors for static constructors.

DenormalMode getRawFPDenormalMode() const

bool HonorSignDependentRoundingFPMath() const

HonorSignDependentRoundingFPMath - Return true if the codegen must assume that the rounding mode of t...

unsigned StackSymbolOrdering

StackSymbolOrdering - When true, this will allow CodeGen to order the local stack symbols (for code s...

MCTargetOptions MCOptions

Machine level options.

FloatABI::ABIType FloatABIType

FloatABIType - This setting is set by -float-abi=xxx option is specfied on the command line.

std::pair< int, int > BinutilsVersion

If greater than 0, override the default value of MCAsmInfo::BinutilsVersion.

void setFPDenormalMode(DenormalMode Mode)

unsigned ForceDwarfFrameSection

Emit DWARF debug frame section.

unsigned NoInfsFPMath

NoInfsFPMath - This flag is enabled when the -enable-no-infs-fp-math flag is specified on the command...

unsigned NoZerosInBSS

NoZerosInBSS - By default some codegens place zero-initialized data to .bss section.

unsigned EmitCallSiteInfo

The flag enables call site info production.

std::string ObjectFilenameForDebug

Stores the filename/path of the final .o/.obj file, to be written in the debug information.

unsigned MisExpect

When set to true, enable MisExpect Diagnostics By default, it is set to false.

unsigned EnableMachineOutliner

Enables the MachineOutliner pass.

unsigned SeparateNamedSections

Emit named sections with the same name into different sections.

SwiftAsyncFramePointerMode SwiftAsyncFramePointer

Control when and how the Swift async frame pointer bit should be set.

unsigned SupportsDebugEntryValues

Set if the target supports the debug entry values by default.

unsigned ApproxFuncFPMath

ApproxFuncFPMath - This flag is enabled when the -enable-approx-func-fp-math is specified on the comm...

EABI EABIVersion

EABIVersion - This flag specifies the EABI version.

DenormalMode getRawFP32DenormalMode() const

unsigned Hotpatch

Emit the hotpatch flag in CodeView debug.

BasicBlockSection BBSections

Emit basic blocks into separate sections.

unsigned HonorSignDependentRoundingFPMathOption

HonorSignDependentRoundingFPMath - This returns true when the -enable-sign-dependent-rounding-fp-math...

unsigned ValueTrackingVariableLocations

GlobalISelAbortMode GlobalISelAbort

EnableGlobalISelAbort - Control abort behaviour when global instruction selection fails to lower/sele...

unsigned XCOFFTracebackTable

Emit XCOFF traceback table.

DebuggerKind DebuggerTuning

Which debugger to tune for.

unsigned IgnoreXCOFFVisibility

Do not emit visibility attribute for xcoff.

unsigned NoSignedZerosFPMath

NoSignedZerosFPMath - This flag is enabled when the -enable-no-signed-zeros-fp-math is specified on t...

unsigned EnableCFIFixup

Enable the CFIFixup pass.

unsigned DebugStrictDwarf

When set to true, don't use DWARF extensions in later DWARF versions.

unsigned SupportsDefaultOutlining

Set if the target supports default outlining behaviour.

unsigned PPCGenScalarMASSEntries

Enables scalar MASS conversions.

unsigned UniqueBasicBlockSectionNames

Use unique names for basic block sections.

bool FramePointerIsReserved(const MachineFunction &MF) const

FramePointerIsReserved - This returns true if the frame pointer must always either point to a new fra...

unsigned LoopAlignment

If greater than 0, override TargetLoweringBase::PrefLoopAlignment.

unsigned TLSSize

Bit size of immediate TLS offsets (0 == use the default).

bool DisableFramePointerElim(const MachineFunction &MF) const

DisableFramePointerElim - This returns true if frame pointer elimination optimization should be disab...

unsigned UniqueSectionNames

unsigned NoNaNsFPMath

NoNaNsFPMath - This flag is enabled when the -enable-no-nans-fp-math flag is specified on the command...

unsigned EnableFastISel

EnableFastISel - This flag enables fast-path instruction selection which trades away generated code q...

std::shared_ptr< MemoryBuffer > BBSectionsFuncListBuf

Memory Buffer that contains information on sampled basic blocks and used to selectively generate basi...

unsigned FunctionSections

Emit functions into separate sections.

unsigned EnableMachineFunctionSplitter

Enables the MachineFunctionSplitter pass.

std::string StackUsageOutput

Name of the stack usage file (i.e., .su file) if user passes -fstack-usage.

unsigned EnableIPRA

This flag enables InterProcedural Register Allocation (IPRA).

unsigned NoTrapAfterNoreturn

Do not emit a trap instruction for 'unreachable' IR instructions behind noreturn calls,...

unsigned EnableGlobalISel

EnableGlobalISel - This flag enables global instruction selection.

unsigned DataSections

Emit data into separate sections.

unsigned GuaranteedTailCallOpt

GuaranteedTailCallOpt - This flag is enabled when -tailcallopt is specified on the commandline.

ThreadModel::Model ThreadModel

ThreadModel - This flag specifies the type of threading model to assume for things like atomics.

unsigned TrapUnreachable

Emit target-specific trap instruction for 'unreachable' IR instructions.

unsigned EmulatedTLS

EmulatedTLS - This flag enables emulated TLS model, using emutls function in the runtime library.

unsigned EnableDebugEntryValues

When set to true, the EnableDebugEntryValues option forces production of debug entry values even if t...

unsigned XRayFunctionIndex

Emit XRay Function Index section.

unsigned NoTrappingFPMath

NoTrappingFPMath - This flag is enabled when the -enable-no-trapping-fp-math is specified on the comm...

unsigned DisableIntegratedAS

Disable the integrated assembler.

bool ShouldEmitDebugEntryValues() const

NOTE: There are targets that still do not support the debug entry values production.

ExceptionHandling ExceptionModel

What exception model to use.

unsigned JMCInstrument

Enable JustMyCode instrumentation.

FPOpFusion::FPOpFusionMode AllowFPOpFusion

AllowFPOpFusion - This flag is set by the -fp-contract=xxx option.

This is an optimization pass for GlobalISel generic memory operations.

CodeObjectVersionKind

Enumeration value for AMDGPU code object version, which is the code object version times 100.

@ None

No exception support.

SwiftAsyncFramePointerMode

Indicates when and how the Swift async frame pointer bit should be set.

@ Always

Always set the bit.

@ Never

Never set the bit.

@ DeploymentBased

Determine whether to set the bit statically or dynamically based on the deployment target.

DebuggerKind

Identify a debugger for "tuning" the debug info.

@ SCE

Tune debug info for SCE targets (e.g. PS4).

@ DBX

Tune debug info for dbx.

@ Default

No specific tuning requested.

@ GDB

Tune debug info for gdb.

@ LLDB

Tune debug info for lldb.

@ Default

The result values are uniform if and only if all operands are uniform.

GlobalISelAbortMode

Enable abort calls when global instruction selection fails to lower/select an instruction.

Represent subnormal handling kind for floating point instruction inputs and outputs.