#
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
|