History log of /llvm-project-15.0.7/clang/lib/CodeGen/CodeGenModule.cpp (Results 826 – 850 of 1864)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 443250f0 17-Mar-2015 David Majnemer <[email protected]>

WIP

llvm-svn: 232537


# ad803d4b 15-Mar-2015 David Majnemer <[email protected]>

MS ABI: Don't use qualified pointee types for 'catch' EH TypeDescriptors

Qualifiers are located next to the TypeDescriptor in order to properly
ensure that a pointer type can only be caught by a mor

MS ABI: Don't use qualified pointee types for 'catch' EH TypeDescriptors

Qualifiers are located next to the TypeDescriptor in order to properly
ensure that a pointer type can only be caught by a more qualified catch
handler. This means that a catch handler of type 'const int *' requires
an RTTI object for 'int *'. We got this correct for 'throw' but not for
'catch'.

N.B. We don't currently have the means to store the qualifiers because
LLVM's EH strategy is tailored to the Itanium scheme. The Itanium ABI
stores qualifiers inside the type descriptor in such a way that the
manner of qualification is stored in addition to the pointee type's
descriptor. Perhaps the best way of modeling this for the MS ABI is
using an aggregate type to bundle the qualifiers with the descriptor?
This is tricky because we want to make it clear to the optimization
passes which catch handlers invalidate other handlers.

My current thoughts on a design for this is along the lines of:
{ { TypeDescriptor* TD, i32 QualifierFlags }, i32 MiscFlags }

The idea is that the inner most aggregate is all that is needed to
communicate that one catch handler might supercede another. The
'MiscFlags' field would be used to hold the bitpattern for the notion
that the 'catch' handler does not need to invoke a copy-constructor
because we are catching by reference.

llvm-svn: 232318

show more ...


# dfd511e9 13-Mar-2015 Joerg Sonnenberger <[email protected]>

Simplify.

llvm-svn: 232130


# 3eff5f46 25-Feb-2015 Alexey Bataev <[email protected]>

[OPENMP] Rename methods of OpenMPRuntime class. NFC.

llvm-svn: 230470


Revision tags: llvmorg-3.6.0
# f63bcaa2 19-Feb-2015 David Majnemer <[email protected]>

CodeGen: Weak reference temporaries belong in a COMDAT

llvm-svn: 229902


# c9a9c7a6 19-Feb-2015 David Majnemer <[email protected]>

CodeGen: static constexpr data members should have a linkonce_odr init

Classes can be defined in multiple translation units. This means that
the static constexpr data members should have identical

CodeGen: static constexpr data members should have a linkonce_odr init

Classes can be defined in multiple translation units. This means that
the static constexpr data members should have identical initializers in
all translation units. Implement this by giving the reference temporary
linkonce_odr linkage.

llvm-svn: 229900

show more ...


Revision tags: llvmorg-3.6.0-rc4
# 26a1216a 18-Feb-2015 Zoran Jovanovic <[email protected]>

Change representation of member function pointers for MIPS targets
Differential Revision: http://reviews.llvm.org/D7148

llvm-svn: 229680


# e990a3f6 18-Feb-2015 Larisse Voufo <[email protected]>

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 <[email protected]>

InstrProf: Update for LLVM API change

Update for the API change in r229433

llvm-svn: 229434


# fbe56a05 15-Feb-2015 Larisse Voufo <[email protected]>

Fix a typo in r229291 causing buildbot failure.

llvm-svn: 229295


# 0c691d02 15-Feb-2015 Larisse Voufo <[email protected]>

More on fixing sized deallocation implementation logic: Fix PR21754.

llvm-svn: 229291


# 5526f4f0 14-Feb-2015 Larisse Voufo <[email protected]>

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 <[email protected]>

MS ABI: Records with fields with required aligmnet shouldn't be common

llvm-svn: 227954


# f37f3d35 02-Feb-2015 Justin Holewinski <[email protected]>

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 <[email protected]>

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 <[email protected]>

clang-format function. NFC.

llvm-svn: 226662


# 740d59ec 21-Jan-2015 David Majnemer <[email protected]>

CodeGen: Compiler generated __declspec(uuid) objects should be COMDAT'd

llvm-svn: 226628


# d9b26d56 16-Jan-2015 Rafael Espindola <[email protected]>

Add comdat to string literal variables on COFF.

llvm-svn: 226317


# cb92c19f 15-Jan-2015 Rafael Espindola <[email protected]>

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 <[email protected]>

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 <[email protected]>

[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 <[email protected]>

[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 <[email protected]>

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 <[email protected]>

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 <[email protected]>

Warn when attribute 'optnone' conflicts with attributes on a
different declaration of the same function.

llvm-svn: 224256


1...<<31323334353637383940>>...75