#
e990a3f6 |
| 18-Feb-2015 |
Larisse Voufo <lvoufo@google.com> |
Rename flags and options to match current naming: from -fdef-sized-delete to -fdefine-sized-deallocation, and from DefaultSizedDelete to DefineSizedDeallocation.
llvm-svn: 229597
|
#
d29a4a38 |
| 16-Feb-2015 |
Justin Bogner <mail@justinbogner.com> |
InstrProf: Update for LLVM API change
Update for the API change in r229433
llvm-svn: 229434
|
#
fbe56a05 |
| 15-Feb-2015 |
Larisse Voufo <lvoufo@google.com> |
Fix a typo in r229291 causing buildbot failure.
llvm-svn: 229295
|
#
0c691d02 |
| 15-Feb-2015 |
Larisse Voufo <lvoufo@google.com> |
More on fixing sized deallocation implementation logic: Fix PR21754.
llvm-svn: 229291
|
#
5526f4f0 |
| 14-Feb-2015 |
Larisse Voufo <lvoufo@google.com> |
Revise the implementation logic of sized deallocation: Do not automatically generate weak definitions of the sized operator delete (in terms of unsized operator delete). Instead, provide the funciton
Revise the implementation logic of sized deallocation: Do not automatically generate weak definitions of the sized operator delete (in terms of unsized operator delete). Instead, provide the funcitonality via a new compiler flag, -fdef-sized-delete. The current implementation causes link-time ODR violations when the delete symbols are exported into the dynamic table.
llvm-svn: 229241
show more ...
|
Revision tags: llvmorg-3.6.0-rc3 |
|
#
e1a0b2e2 |
| 03-Feb-2015 |
David Majnemer <david.majnemer@gmail.com> |
MS ABI: Records with fields with required aligmnet shouldn't be common
llvm-svn: 227954
|
#
f37f3d35 |
| 02-Feb-2015 |
Justin Holewinski <jholewinski@nvidia.com> |
When generating llvm.used, we may need an addrspacecast instead of a bitcast.
Summary: This is especially important for targets that use multiple address spaces, and commonly place global variables
When generating llvm.used, we may need an addrspacecast instead of a bitcast.
Summary: This is especially important for targets that use multiple address spaces, and commonly place global variables in address spaces other than zero.
Fixes PR22383
Test Plan: New test case added: llvm-used.cu
Reviewers: jingyue
Subscribers: llvm-commits
Differential Revision: http://reviews.llvm.org/D7345
llvm-svn: 227861
show more ...
|
Revision tags: llvmorg-3.6.0-rc2 |
|
#
e5df59ff |
| 22-Jan-2015 |
Rafael Espindola <rafael.espindola@gmail.com> |
Emit DeferredDeclsToEmit in a DFS order.
Currently we emit DeferredDeclsToEmit in reverse order. This patch changes that.
The advantages of the change are that
* The output order is a bit closer t
Emit DeferredDeclsToEmit in a DFS order.
Currently we emit DeferredDeclsToEmit in reverse order. This patch changes that.
The advantages of the change are that
* The output order is a bit closer to the source order. The change to test/CodeGenCXX/pod-member-memcpys.cpp is a good example.
* If we decide to deffer more, it will not cause as large changes in the estcases as it would without this patch.
llvm-svn: 226751
show more ...
|
#
6d1178ca |
| 21-Jan-2015 |
Rafael Espindola <rafael.espindola@gmail.com> |
clang-format function. NFC.
llvm-svn: 226662
|
#
740d59ec |
| 21-Jan-2015 |
David Majnemer <david.majnemer@gmail.com> |
CodeGen: Compiler generated __declspec(uuid) objects should be COMDAT'd
llvm-svn: 226628
|
#
d9b26d56 |
| 16-Jan-2015 |
Rafael Espindola <rafael.espindola@gmail.com> |
Add comdat to string literal variables on COFF.
llvm-svn: 226317
|
#
cb92c19f |
| 15-Jan-2015 |
Rafael Espindola <rafael.espindola@gmail.com> |
Use a trivial comdat for C++ tables.
This produces comdats for vtables, typeinfo, typeinfo names, and vtts.
When combined with llvm not producing implicit comdats, not doing this would cause code b
Use a trivial comdat for C++ tables.
This produces comdats for vtables, typeinfo, typeinfo names, and vtts.
When combined with llvm not producing implicit comdats, not doing this would cause code bloat on ELF and link errors on COFF.
llvm-svn: 226227
show more ...
|
#
dbee8a7a |
| 15-Jan-2015 |
Rafael Espindola <rafael.espindola@gmail.com> |
Use a trivial comdat for inline ctor/dtor when not using C5/D5.
When combined with llvm not producing implicit comdats, not doing this would cause code bloat on ELF and link errors on COFF.
llvm-sv
Use a trivial comdat for inline ctor/dtor when not using C5/D5.
When combined with llvm not producing implicit comdats, not doing this would cause code bloat on ELF and link errors on COFF.
llvm-svn: 226211
show more ...
|
Revision tags: llvmorg-3.6.0-rc1 |
|
#
0d9593dd |
| 14-Jan-2015 |
Chandler Carruth <chandlerc@gmail.com> |
[cleanup] Re-sort *all* #include lines with llvm/utils/sort_includes.py
Sorry for the noise, I managed to miss a bunch of recent regressions of include orderings here. This should actually sort all
[cleanup] Re-sort *all* #include lines with llvm/utils/sort_includes.py
Sorry for the noise, I managed to miss a bunch of recent regressions of include orderings here. This should actually sort all the includes for Clang. Again, no functionality changed, this is just a mechanical cleanup that I try to run periodically to keep the #include lines as regular as possible across the project.
llvm-svn: 225979
show more ...
|
#
0d4fb985 |
| 12-Jan-2015 |
Rafael Espindola <rafael.espindola@gmail.com> |
[patch][pr19848] Produce explicit comdats in clang.
The llvm IR until recently had no support for comdats. This was a problem when targeting C++ on ELF/COFF as just using weak linkage would cause qu
[patch][pr19848] Produce explicit comdats in clang.
The llvm IR until recently had no support for comdats. This was a problem when targeting C++ on ELF/COFF as just using weak linkage would cause quite a bit of dead bits to remain on the executable (unless -ffunction-sections, -fdata-sections and --gc-sections were used).
To fix the problem, llvm's codegen will just assume that any weak or linkonce that is not in an explicit comdat should be output in one with the same name as the global.
This unfortunately breaks cases like pr19848 where a weak symbol is not xpected to be part of any comdat.
Now that we have explicit comdats in the IR, we can finally get both cases right.
This first patch just makes clang give explicit comdats to GlobalValues where t is allowed to.
A followup patch to llvm will then stop implicitly producing comdats.
llvm-svn: 225705
show more ...
|
#
43a0f99b |
| 10-Jan-2015 |
Hans Wennborg <hans@hanshq.net> |
Don't emit implicit template instantiations eagerly (PR21718)
Their linkage can change if they are later explicitly instantiated. We would previously emit such functions eagerly (as opposed to lazil
Don't emit implicit template instantiations eagerly (PR21718)
Their linkage can change if they are later explicitly instantiated. We would previously emit such functions eagerly (as opposed to lazily on first use) if they have a 'dllexport' or 'used' attribute, and fail an assert when hitting the explicit instantiation.
This is achieved by replacing the old CodeGenModule::MayDeferGeneration() method with two new ones: MustBeEmitted() and MayBeEmittedEagerly().
Differential Revision: http://reviews.llvm.org/D6674
llvm-svn: 225570
show more ...
|
Revision tags: llvmorg-3.5.1, llvmorg-3.5.1-rc2 |
|
#
0317bc9e |
| 16-Dec-2014 |
David Blaikie <dblaikie@gmail.com> |
PR21909: Don't try (and crash) to generate debug info for explicit instantiations of explicit specializations.
llvm-svn: 224394
|
#
30e41fb4 |
| 15-Dec-2014 |
Paul Robinson <paul_robinson@playstation.sony.com> |
Warn when attribute 'optnone' conflicts with attributes on a different declaration of the same function.
llvm-svn: 224256
|
#
08556951 |
| 11-Dec-2014 |
Paul Robinson <paul_robinson@playstation.sony.com> |
Instead of having -Os/-Oz add OptimizeForSize/MinSize first, and later having OptimizeNone remove them again, just don't add them in the first place if the function already has OptimizeNone.
Note th
Instead of having -Os/-Oz add OptimizeForSize/MinSize first, and later having OptimizeNone remove them again, just don't add them in the first place if the function already has OptimizeNone.
Note that MinSize can still appear due to attributes on different declarations; a future patch will address that.
llvm-svn: 224047
show more ...
|
#
fb494914 |
| 09-Dec-2014 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
IR: Update clang for Metadata/Value split in r223802
Match LLVM API changes from r223802.
llvm-svn: 223803
|
Revision tags: llvmorg-3.5.1-rc1 |
|
#
970ac605 |
| 08-Dec-2014 |
Justin Bogner <mail@justinbogner.com> |
InstrProf: Use LLVM's -instrprof pass for profiling
The logic for lowering profiling counters has been moved to an LLVM pass. Emit the intrinsics rather than duplicating the whole pass in clang.
ll
InstrProf: Use LLVM's -instrprof pass for profiling
The logic for lowering profiling counters has been moved to an LLVM pass. Emit the intrinsics rather than duplicating the whole pass in clang.
llvm-svn: 223683
show more ...
|
#
d90dd797 |
| 02-Dec-2014 |
Anton Korobeynikov <asl@math.spbu.ru> |
Fix invalid calling convention used for libcalls on ARM. ARM ABI specifies that all the libcalls use soft FP ABI (even hard FP binaries). These days clang emits _mulsc3 / _muldc3 calls with default
Fix invalid calling convention used for libcalls on ARM. ARM ABI specifies that all the libcalls use soft FP ABI (even hard FP binaries). These days clang emits _mulsc3 / _muldc3 calls with default (C) calling convention which would be translated into AAPCS_VFP LLVM calling and thus the result of complex multiplication will be bogus.
Introduce a way for a target to specify explicitly calling convention for libcalls. Right now this is temporary correctness fix. Ultimately, we'll end with intrinsic for complex multiplication and all calling convention decisions for libcalls will be put into backend.
llvm-svn: 223123
show more ...
|
#
ee7cf84c |
| 01-Dec-2014 |
Reid Kleckner <reid@kleckner.net> |
Use nullptr to silence -Wsentinel when self-hosting on Windows
Richard rejected my Sema change to interpret an integer literal zero in a varargs context as a null pointer, so -Wsentinel sees an inte
Use nullptr to silence -Wsentinel when self-hosting on Windows
Richard rejected my Sema change to interpret an integer literal zero in a varargs context as a null pointer, so -Wsentinel sees an integer literal zero and fires off a warning. Only CodeGen currently knows that it promotes integer literal zeroes in this context to pointer size on Windows. I didn't want to teach -Wsentinel about that compatibility hack. Therefore, I'm migrating to C++11 nullptr.
llvm-svn: 223079
show more ...
|
#
a634ff21 |
| 01-Dec-2014 |
Richard Smith <richard-llvm@metafoo.co.uk> |
Add missing 'break's, found by inspection. No functionality change; the fallthrough happened to do the right thing in both cases.
llvm-svn: 223064
|
#
4ece6825 |
| 24-Nov-2014 |
Paul Robinson <paul_robinson@playstation.sony.com> |
Correctly remove OptimizeForSize from functions marked OptimizeNone. This allows using __attribute__((optnone)) and the -Os/-Oz options. Fixes PR21604.
llvm-svn: 222683
|