History log of /llvm-project/llvm/lib/IR/DataLayout.cpp (Results 151 – 175 of 183)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 3ad5c962 10-Mar-2014 Benjamin Kramer <benny.kra@googlemail.com>

[C++11] Modernize the IR library a bit.

No functionality change.

llvm-svn: 203465


# 03eb0de9 04-Mar-2014 Chandler Carruth <chandlerc@gmail.com>

[Modules] Move GetElementPtrTypeIterator into the IR library. As its
name might indicate, it is an iterator over the types in an instruction
in the IR.... You see where this is going.

Another step o

[Modules] Move GetElementPtrTypeIterator into the IR library. As its
name might indicate, it is an iterator over the types in an instruction
in the IR.... You see where this is going.

Another step of modularizing the support library.

llvm-svn: 202815

show more ...


# e8ae0dba 26-Feb-2014 Rafael Espindola <rafael.espindola@gmail.com>

Fix typo. Thanks to Roman Divacky for noticing it.

llvm-svn: 202277


# ae593f15 26-Feb-2014 Rafael Espindola <rafael.espindola@gmail.com>

Compare DataLayout by Value, not by pointer.

This fixes spurious warnings in llvm-link about the datalayout not matching.

Thanks to Zalman Stern for reporting the bug!

llvm-svn: 202276


# 667fcb83 26-Feb-2014 Rafael Espindola <rafael.espindola@gmail.com>

Use a sorted array to store the information about a few address spaces.

We don't have any test with more than 6 address spaces, so a DenseMap is
probably not the correct answer.

An unsorted array w

Use a sorted array to store the information about a few address spaces.

We don't have any test with more than 6 address spaces, so a DenseMap is
probably not the correct answer.

An unsorted array would also be OK, but we have to sort it for printing anyway.

llvm-svn: 202275

show more ...


# 5109fcc0 26-Feb-2014 Rafael Espindola <rafael.espindola@gmail.com>

Move these functions out of line. A DenseMap lookup is not a simple operation.

llvm-svn: 202274


# 339430f9 25-Feb-2014 Rafael Espindola <rafael.espindola@gmail.com>

Use DataLayout from the module when easily available.

Eventually DataLayoutPass should go away, but for now that is the only easy
way to get a DataLayout in some APIs. This patch only changes the on

Use DataLayout from the module when easily available.

Eventually DataLayoutPass should go away, but for now that is the only easy
way to get a DataLayout in some APIs. This patch only changes the ones that
have easy access to a Module.

One interesting issue with sometimes using DataLayoutPass and sometimes
fetching it from the Module is that we have to make sure they are equivalent.
We can get most of the way there by always constructing the pass with a Module.
In fact, the pass could be changed to point to an external DataLayout instead
of owning one to make this stricter.

Unfortunately, the C api passes a DataLayout, so it has to be up to the caller
to make sure the pass and the module are in sync.

llvm-svn: 202204

show more ...


# 248ac139 25-Feb-2014 Rafael Espindola <rafael.espindola@gmail.com>

Fix resetting the DataLayout in a Module.

No tool does this currently, but as everything else in a module we should be
able to change its DataLayout.

Most of the fix is in DataLayout to make sure i

Fix resetting the DataLayout in a Module.

No tool does this currently, but as everything else in a module we should be
able to change its DataLayout.

Most of the fix is in DataLayout to make sure it can be reset properly.

The test uses Module::setDataLayout since the fact that we mutate a DataLayout
is an implementation detail. The module could hold a OwningPtr<DataLayout> and
the DataLayout itself could be immutable.

Thanks to Philip Reames for pushing me in the right direction.

llvm-svn: 202198

show more ...


# f863ee29 25-Feb-2014 Rafael Espindola <rafael.espindola@gmail.com>

Store a DataLayout in Module.

Now that DataLayout is not a pass, store one in Module.

Since the C API expects to be able to get a char* to the datalayout description,
we have to keep a std::string

Store a DataLayout in Module.

Now that DataLayout is not a pass, store one in Module.

Since the C API expects to be able to get a char* to the datalayout description,
we have to keep a std::string somewhere. This patch keeps it in Module and also
uses it to represent modules without a DataLayout.

Once DataLayout is mandatory, we should probably move the string to DataLayout
itself since it won't be necessary anymore to represent the special case of a
module without a DataLayout.

llvm-svn: 202190

show more ...


# 93512512 25-Feb-2014 Rafael Espindola <rafael.espindola@gmail.com>

Make DataLayout a plain object, not a pass.

Instead, have a DataLayoutPass that holds one. This will allow parts of LLVM
don't don't handle passes to also use DataLayout.

llvm-svn: 202168


# f0379fa4 13-Jan-2014 Cameron McInally <cameron.mcinally@nyu.edu>

Fix uninitialized warning in llvm/lib/IR/DataLayout.cpp.

llvm-svn: 199147


# af77e120 10-Jan-2014 Rafael Espindola <rafael.espindola@gmail.com>

Use 'w' instead of 'c' to represent the win32 mangling.

This change was requested to avoid confusion if we ever support non windows coff
systems.

llvm-svn: 198938


# 8af9eac3 07-Jan-2014 Cameron McInally <cameron.mcinally@nyu.edu>

Fix uninitialized variable warning in DataLayout.

llvm-svn: 198702


# abdd726c 06-Jan-2014 Rafael Espindola <rafael.espindola@gmail.com>

Improve documentation of the 'a' specifier and the '<abi>:<pref>' align pair.

llvm-svn: 198636


# 58873566 03-Jan-2014 Rafael Espindola <rafael.espindola@gmail.com>

Make the llvm mangler depend only on DataLayout.

Before this patch any program that wanted to know the final symbol name of a
GlobalValue had to link with Target.

This patch implements a compromise

Make the llvm mangler depend only on DataLayout.

Before this patch any program that wanted to know the final symbol name of a
GlobalValue had to link with Target.

This patch implements a compromise solution where the mangler uses DataLayout.
This way, any tool that already links with Target (llc, clang) gets the exact
behavior as before and new IR files can be mangled without linking with Target.

With this patch the mangler is constructed with just a DataLayout and DataLayout
is extended to include the information the Mangler needs.

llvm-svn: 198438

show more ...


# 6994fdf3 01-Jan-2014 Rafael Espindola <rafael.espindola@gmail.com>

Remove the 's' DataLayout specification

During the years there have been some attempts at figuring out how to
align byval arguments. A look at the commit log suggests that they
were

* Use the ABI a

Remove the 's' DataLayout specification

During the years there have been some attempts at figuring out how to
align byval arguments. A look at the commit log suggests that they
were

* Use the ABI alignment.
* When that was not sufficient for x86-64, I added the 's' specification to
DataLayout.
* When that was not sufficient Evan added the virtual getByValTypeAlignment.
* When even that was not sufficient, we just got the FE to add the alignment
to the byval.

This patch is just a simple cleanup that removes my first attempt at fixing the
problem. I also added an AArch64 implementation of getByValTypeAlignment to
make sure this patch is a nop. I also left the 's' parsing for backward
compatibility.

I will send a short email to llvmdev about the change for anyone maintaining
an out of tree target.

llvm-svn: 198287

show more ...


Revision tags: llvmorg-3.4.0
# e23b8774 20-Dec-2013 Rafael Espindola <rafael.espindola@gmail.com>

Make this array const.

llvm-svn: 197814


# 458a4851 19-Dec-2013 Rafael Espindola <rafael.espindola@gmail.com>

Change getStringRepresentation to skip defaults.

I have a pending change for clang to use getStringRepresentation to check
that its DataLayout is in sync with llvm's.

getStringRepresentation is not

Change getStringRepresentation to skip defaults.

I have a pending change for clang to use getStringRepresentation to check
that its DataLayout is in sync with llvm's.

getStringRepresentation is not called from llvm itself, so far it is mostly
a debugging aid, so the shorter strings are an independent improvement.

llvm-svn: 197740

show more ...


Revision tags: llvmorg-3.4.0-rc3
# f39136c3 13-Dec-2013 Rafael Espindola <rafael.espindola@gmail.com>

Pointer sizes are stored in Bytes. Fix variables names to say so.

Also update for the current naming style.

llvm-svn: 197283


Revision tags: llvmorg-3.4.0-rc2, llvmorg-3.4.0-rc1
# 058f5b38 19-Nov-2013 Benjamin Kramer <benny.kra@googlemail.com>

DataLayout: value initialize globals to avoid static construction.

llvm-svn: 195150


# 899f7d2b 16-Sep-2013 Matt Arsenault <Matthew.Arsenault@amd.com>

MemCpyOptimizer: Use max legal int size instead of pointer size

If there are no legal integers, assume 1 byte.

This makes more sense than using the pointer size as
a guess for the maximum GPR width

MemCpyOptimizer: Use max legal int size instead of pointer size

If there are no legal integers, assume 1 byte.

This makes more sense than using the pointer size as
a guess for the maximum GPR width.

It is conceivable to want to use some 64-bit pointers
on a target where 64-bit integers aren't legal.

llvm-svn: 190817

show more ...


# 517cf483 27-Jul-2013 Matt Arsenault <Matthew.Arsenault@amd.com>

Minor code simplification suggested by Duncan

llvm-svn: 187309


# 6f4be905 26-Jul-2013 Matt Arsenault <Matthew.Arsenault@amd.com>

Re-add DataLayout pointer size convenience functions.

These were reverted in r167222 along with the rest
of the last different address space pointer size attempt.
These will be used in later commits

Re-add DataLayout pointer size convenience functions.

These were reverted in r167222 along with the rest
of the last different address space pointer size attempt.
These will be used in later commits.

llvm-svn: 187223

show more ...


Revision tags: llvmorg-3.3.1-rc1
# af0dea13 04-Jul-2013 Craig Topper <craig.topper@gmail.com>

Use SmallVectorImpl::iterator/const_iterator instead of SmallVector to avoid specifying the vector size.

llvm-svn: 185606


# b74e3dec 28-Jun-2013 Matt Arsenault <Matthew.Arsenault@amd.com>

Fix extra whitespace / formatting

llvm-svn: 185238


12345678