History log of /llvm-project-15.0.7/llvm/utils/TableGen/CodeGenTarget.cpp (Results 176 – 200 of 376)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: llvmorg-3.0.0-rc3, llvmorg-3.0.0-rc2, llvmorg-3.0.0-rc1
# 84c287e3 01-Oct-2011 Peter Collingbourne <[email protected]>

Move TableGen's parser and entry point into a library

This is the first step towards splitting LLVM and Clang's tblgen executables.

llvm-svn: 140951


# 19be2ab3 29-Sep-2011 Jakob Stoklund Olesen <[email protected]>

Switch to ArrayRef<CodeGenRegisterClass*>.

This makes it possible to allocate CodeGenRegisterClass instances
dynamically and reorder them.

llvm-svn: 140816


# af8ee2cd 29-Jul-2011 David Greene <[email protected]>

Unconstify Inits

Remove const qualifiers from Init references, per Chris' request.

llvm-svn: 136531


# 1aa0e3e1 29-Jul-2011 David Greene <[email protected]>

[AVX] Constify Inits

Make references to Inits const everywhere. This is the final step
before making them unique.

llvm-svn: 136485


# 71520a86 11-Jul-2011 Eric Christopher <[email protected]>

Revert r134921, 134917, 134908 and 134907. They're causing failures
in multiple buildbots.

llvm-svn: 134936


# af973b4f 11-Jul-2011 David Greene <[email protected]>

[AVX] Make Inits Foldable

Manage Inits in a FoldingSet. This provides several benefits:

- Memory for Inits is properly managed

- Duplicate Inits are folded into Flyweights, saving memory

- It en

[AVX] Make Inits Foldable

Manage Inits in a FoldingSet. This provides several benefits:

- Memory for Inits is properly managed

- Duplicate Inits are folded into Flyweights, saving memory

- It enforces const-correctness, protecting against certain classes
of bugs

The above benefits allow Inits to be used in more contexts, which in
turn provides more dynamism to TableGen. This enhanced capability
will be used by the AVX code generator to a fold common patterns
together.

llvm-svn: 134907

show more ...


# a84be6c9 27-Jun-2011 Owen Anderson <[email protected]>

Add support for alternative register names, useful for instructions whose operands are logically equivalent to existing registers, but happen to be printed specially. For example, an instruciton tha

Add support for alternative register names, useful for instructions whose operands are logically equivalent to existing registers, but happen to be printed specially. For example, an instruciton that prints d0[0] instead of s0.
Patch by Jim Grosbach.

llvm-svn: 133940

show more ...


# 8e188be0 18-Jun-2011 Jakob Stoklund Olesen <[email protected]>

Store CodeGenRegisters as pointers so they won't be reallocated.

Reuse the CodeGenRegBank DenseMap in a few places that would build their
own or use linear search.

llvm-svn: 133333


# f5a0ca46 16-Jun-2011 Owen Anderson <[email protected]>

Fix formatting.

llvm-svn: 133164


# 96adc4a5 15-Jun-2011 Owen Anderson <[email protected]>

Add a new MVT::untyped. This will be used in future work for modelling ISA features like register pairs and lists with "interesting" constraints (such as ARM NEON contiguous register lists or even-o

Add a new MVT::untyped. This will be used in future work for modelling ISA features like register pairs and lists with "interesting" constraints (such as ARM NEON contiguous register lists or even-odd paired registers). We need to be able to generate these instructions (often from intrinsics), but don't want to have to assign a legal type to them. Instead, we'll use an "untyped" edge to bypass the type-checking and simply ensure that the register classes match.

llvm-svn: 133106

show more ...


# d7bc5c26 15-Jun-2011 Jakob Stoklund Olesen <[email protected]>

Give CodeGenRegisterClass a real sorted member set.

Make the Elements vector private and expose an ArrayRef through
getOrder() instead. getOrder will eventually provide multiple
user-specified alloc

Give CodeGenRegisterClass a real sorted member set.

Make the Elements vector private and expose an ArrayRef through
getOrder() instead. getOrder will eventually provide multiple
user-specified allocation orders.

Use the sorted member set for member and subclass tests. Clean up a lot
of ad hoc searches.

llvm-svn: 133040

show more ...


# 22ea424d 15-Jun-2011 Jakob Stoklund Olesen <[email protected]>

Move the list of register classes into CodeGenRegBank as well.

No functional change intended.

llvm-svn: 133029


# 84bd44eb 11-Jun-2011 Jakob Stoklund Olesen <[email protected]>

Move the list of registers into CodeGenRegBank.

Also move the sub-register index computations from RegisterInfoEmitter
into CodeGenRegBank.

llvm-svn: 132865


# 76a5a71e 10-Jun-2011 Jakob Stoklund Olesen <[email protected]>

Move some sub-register index calculations to CodeGenRegisters.cpp

Create a new CodeGenRegBank class that will eventually hold all the code
that computes the register structure from Records.

llvm-sv

Move some sub-register index calculations to CodeGenRegisters.cpp

Create a new CodeGenRegBank class that will eventually hold all the code
that computes the register structure from Records.

llvm-svn: 132849

show more ...


# 68d6d8ab 09-Jun-2011 Jakob Stoklund Olesen <[email protected]>

Move TableGen's register bank classes to their own source file.

I'll be moving some more code there to gather all of the
register-specific stuff in one place. Currently it is shared between
CodeGenT

Move TableGen's register bank classes to their own source file.

I'll be moving some more code there to gather all of the
register-specific stuff in one place. Currently it is shared between
CodeGenTarget and RegisterInfoEmitter.

The plan is that CodeGenRegisters can compute the full register bank
structure while RegisterInfoEmitter only will handle the printing part.

llvm-svn: 132788

show more ...


# 75703ca7 02-Jun-2011 Jakob Stoklund Olesen <[email protected]>

Make it possible to have unallocatable register classes.

Some register classes are only used for instruction operand constraints.
They should never be used for virtual registers. Previously, those
r

Make it possible to have unallocatable register classes.

Some register classes are only used for instruction operand constraints.
They should never be used for virtual registers. Previously, those
register classes were given an empty allocation order, but now you can
say 'let isAllocatable=0' in the register class definition.

TableGen calculates if a register is part of any allocatable register
class, and makes that information available in TargetRegisterDesc::inAllocatableClass.

The goal here is to eliminate use cases for overriding allocation_order_*
methods.

llvm-svn: 132508

show more ...


# 375dcc9e 28-May-2011 John McCall <[email protected]>

Change how tblgen generates attributes for intrinsics to use a single
switch. With this newfound organization, teach tblgen how not to give
all intrinsics the 'nounwind' attribute. Introduce a new

Change how tblgen generates attributes for intrinsics to use a single
switch. With this newfound organization, teach tblgen how not to give
all intrinsics the 'nounwind' attribute. Introduce a new intrinsic,
llvm.eh.resume, which does not have this attribute. Documentation and uses
to follow.

llvm-svn: 132252

show more ...


# c8c4ded3 07-May-2011 Jakob Stoklund Olesen <[email protected]>

Teach TableGen to automatically generate missing SubRegIndex instances.

The RegisterInfo.td file should only specify the indexes that sources need to
refer to. The rest is inferred.

llvm-svn: 131058


# 6b3396fb 21-Apr-2011 Jakob Stoklund Olesen <[email protected]>

Don't allow per-register spill size and alignment.

These values were not used for anything. Spill size and alignment is a property
of the register class, not the register.

llvm-svn: 129906


# 0e34c1df 20-Apr-2011 Jakob Stoklund Olesen <[email protected]>

Prefer cheap registers for busy live ranges.

On the x86-64 and thumb2 targets, some registers are more expensive to encode
than others in the same register class.

Add a CostPerUse field to the Tabl

Prefer cheap registers for busy live ranges.

On the x86-64 and thumb2 targets, some registers are more expensive to encode
than others in the same register class.

Add a CostPerUse field to the TableGen register description, and make it
available from TRI->getCostPerUse. This represents the cost of a REX prefix or a
32-bit instruction encoding required by choosing a high register.

Teach the greedy register allocator to prefer cheap registers for busy live
ranges (as indicated by spill weight).

llvm-svn: 129864

show more ...


Revision tags: llvmorg-2.9.0, llvmorg-2.9.0-rc3, llvmorg-2.9.0-rc2
# eb52c236 11-Mar-2011 Jim Grosbach <[email protected]>

Make the register enum value part of the CodeGenRegister struct.

llvm-svn: 127448


# f910bf29 11-Mar-2011 Jim Grosbach <[email protected]>

Trailing whitespace.

llvm-svn: 127447


Revision tags: llvmorg-2.9.0-rc1
# 2a0a3b43 23-Dec-2010 Chris Lattner <[email protected]>

Flag -> Glue, the ongoing saga

llvm-svn: 122513


# 3e5fbd74 21-Dec-2010 Chris Lattner <[email protected]>

rename MVT::Flag to MVT::Glue. "Flag" is a terrible name for
something that just glues two nodes together, even if it is
sometimes used for flags.

llvm-svn: 122310


# 89dcb687 15-Dec-2010 Chris Lattner <[email protected]>

various cleanups to tblgen, patch by Garrison Venn!

llvm-svn: 121837


12345678910>>...16