History log of /llvm-project-15.0.7/clang/lib/CodeGen/CGExpr.cpp (Results 926 – 950 of 1262)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
# 230e1541 14-Apr-2010 Daniel Dunbar <[email protected]>

IRgen: Move EmitStoreThroughBitfieldLValue to use new CGBitfieldInfo::AccessInfo decomposition, instead of computing the access policy itself.
- Sadly, this doesn't seem to give any .ll size win so

IRgen: Move EmitStoreThroughBitfieldLValue to use new CGBitfieldInfo::AccessInfo decomposition, instead of computing the access policy itself.
- Sadly, this doesn't seem to give any .ll size win so far. It is possible to make this routine significantly smarter & avoid various shifting, masking, and zext/sext, but I'm not really convinced it is worth it. It is tricky, and this is really instcombine's job.

- No intended functionality change; the test case is just to increase coverage & serves as a demo file, it worked before this commit.

llvm-svn: 101222

show more ...


# 3447a02d 13-Apr-2010 Daniel Dunbar <[email protected]>

IRgen: Move EmitLoadOfBitfieldLValue to use new CGBitfieldInfo::AccessInfo decomposition, instead of computing the access policy itself.
- This lets the method focus slightly more on emitting clean

IRgen: Move EmitLoadOfBitfieldLValue to use new CGBitfieldInfo::AccessInfo decomposition, instead of computing the access policy itself.
- This lets the method focus slightly more on emitting clean IR to honor the policy which has been selected. On 403.gcc's combine.c, x86_64, -O0, this reduces the number of lines in the .ll file (~= # of instructions) by 2.5%.

- No intended functionality change -- at -O3 this should produce equivalent if not identical output. On 403.gcc's combine.c, x86_64, -O3, this isn't quite true and some of the changes are regressions, but I'm not going to worry about that until we move to a new access policy.

- There is still some room for improvement in the generated IR, in particular we can usually fold the sign-extension of the bit-field into one of the component access. See the FIXME.

llvm-svn: 101192

show more ...


# bc3be65d 10-Apr-2010 Chris Lattner <[email protected]>

fix PR6805: llvm.objectsize changed to take an i1 instead of an i32.

llvm-svn: 100938


# c75c8bd7 08-Apr-2010 Daniel Dunbar <[email protected]>

IRgen: Move the bit-field access type into CGBitFieldInfo, and change bit-field LValues to just store the base address of object containing the bit-field.

llvm-svn: 100745


# 196ea449 06-Apr-2010 Daniel Dunbar <[email protected]>

IRgen: Move BitFieldIsSigned bit into CGBitFieldInfo.

llvm-svn: 100513


# 60d81e86 06-Apr-2010 Daniel Dunbar <[email protected]>

Simplify.

llvm-svn: 100511


# dc406b8e 05-Apr-2010 Daniel Dunbar <[email protected]>

IRgen: Move BitField LValues to just hold a reference to the CGBitFieldInfo.
- Unfortunately, this requires some horrible code in CGObjCMac which always
allocats a CGBitFieldInfo because we don't

IRgen: Move BitField LValues to just hold a reference to the CGBitFieldInfo.
- Unfortunately, this requires some horrible code in CGObjCMac which always
allocats a CGBitFieldInfo because we don't currently build a proper layout
for Objective-C classes. It needs to be cleaned up, but I don't want the
bit-field cleanups to be blocked on that.

llvm-svn: 100474

show more ...


# cd3d5e76 05-Apr-2010 Daniel Dunbar <[email protected]>

IRgen: Lift BitFieldInfo to CGBitFieldInfo at namespace level.

llvm-svn: 100433


# 034299ef 31-Mar-2010 Daniel Dunbar <[email protected]>

IRGen: Move the auxiliary data structures tracking AST -> LLVM mappings out of CodeGenTypes, to per-record CGRecordLayout structures.
- I did a cursory check that this was perf neutral, FWIW.

llvm-

IRGen: Move the auxiliary data structures tracking AST -> LLVM mappings out of CodeGenTypes, to per-record CGRecordLayout structures.
- I did a cursory check that this was perf neutral, FWIW.

llvm-svn: 99978

show more ...


# d9c7c656 30-Mar-2010 John McCall <[email protected]>

Introduce a new kind of derived-to-base cast which bypasses the need for
null checks, and make sure we elide null checks when accessing base class
members.

llvm-svn: 99963


# f4ffa0da 30-Mar-2010 Daniel Dunbar <[email protected]>

Minor formatting/FIXME cleanups.

llvm-svn: 99944


# 2e42fec3 04-Mar-2010 Rafael Espindola <[email protected]>

Fix PR6473.

Clang's support for weakref is now better than llvm-gcc's :-)

We don't introduce a new symbol and we correctly mark undefined references weak only if there is no
definition or regular u

Fix PR6473.

Clang's support for weakref is now better than llvm-gcc's :-)

We don't introduce a new symbol and we correctly mark undefined references weak only if there is no
definition or regular undefined references in the same file.

llvm-svn: 97733

show more ...


# d004918c 16-Feb-2010 Daniel Dunbar <[email protected]>

IRgen: Add CreateIRTemp, which creates a temporary alloca but with type converted "not-for-memory". Dunno a better name.

llvm-svn: 96374


# 27bacafb 16-Feb-2010 Daniel Dunbar <[email protected]>

IRgen: Switch EmitCompoundLiteralLValue to use CreateMemTemp.

llvm-svn: 96373


# 7538eec6 15-Feb-2010 John McCall <[email protected]>

When emitting an aggregate into a temporary, make sure we set the alignment
on the alloca.

The fact that codegen makes this class of bug so wonderfully easy to make is
embarrassing.

llvm-svn: 96204


# 5bd8d192 11-Feb-2010 Anders Carlsson <[email protected]>

More vtable layout dumper improvements. Handle destructors, dump the complete function type of the member functions (using PredefinedExpr::ComputeName.

llvm-svn: 95887


# a7566f16 09-Feb-2010 Daniel Dunbar <[email protected]>

IRgen: Add CreateMemTemp, for creating an temporary memory object for a particular type, and flood fill. - CreateMemTemp sets the alignment on the alloca correctly, which fixes a great many places in

IRgen: Add CreateMemTemp, for creating an temporary memory object for a particular type, and flood fill. - CreateMemTemp sets the alignment on the alloca correctly, which fixes a great many places in IRgen where we were doing the wrong thing.

- This fixes many many more places than the test case, but my feeling is we need to audit alignment systematically so I'm not inclined to try hard to test the individual fixes in this patch. If this bothers you, patches welcome!

PR6240.

llvm-svn: 95648

show more ...


# 3d33fab7 08-Feb-2010 Daniel Dunbar <[email protected]>

Reapply r95393, without the change to CGExpr. I was wrong in assuming that the
element type always matched the converted LLVM type for ExprType.

llvm-svn: 95596


# ab26cfa5 05-Feb-2010 John McCall <[email protected]>

Standardize the parsing of function type attributes in a way that
follows (as conservatively as possible) gcc's current behavior: attributes
written on return types that don't apply there are applie

Standardize the parsing of function type attributes in a way that
follows (as conservatively as possible) gcc's current behavior: attributes
written on return types that don't apply there are applied to the function
instead, etc. Only parse CC attributes as type attributes, not as decl attributes;
don't accepet noreturn as a decl attribute on ValueDecls, either (it still
needs to apply to other decls, like blocks). Consistently consume CC/noreturn
information throughout codegen; enforce this by removing their default values
in CodeGenTypes::getFunctionInfo().

llvm-svn: 95436

show more ...


# a6437804 05-Feb-2010 Douglas Gregor <[email protected]>

Revert r95393, which broke Clang's self-host.

llvm-svn: 95430


# 9c4e4651 05-Feb-2010 Daniel Dunbar <[email protected]>

IRgen: A few more ConvertType cleanups.

llvm-svn: 95423


# d0bc7b9d 05-Feb-2010 Daniel Dunbar <[email protected]>

IRgen: Factor out EmitAggExprToLValue.

llvm-svn: 95416


# 88481755 05-Feb-2010 Daniel Dunbar <[email protected]>

IRgen: Fix some CreateTempAlloca calls to use ConvertTypeForMem when that is
conceptually correct. Review appreciated (Chris, Eli, Anders).

llvm-svn: 95401


# 5a5473f0 05-Feb-2010 Charles Davis <[email protected]>

Now that we store calling conventions in the types, use them instead of
getting the calling convention from the target function, which may or may not
exist. Fixes PR5280.

llvm-svn: 95399


# 363589bd 05-Feb-2010 Daniel Dunbar <[email protected]>

IRgen: Use hasAggregateLLVMType instead of isSingleValueType() for cases that
need to deal with aggregates specially; this is consistent with the rest of IRgen.

Also, simplify EmitParmDecl and don't

IRgen: Use hasAggregateLLVMType instead of isSingleValueType() for cases that
need to deal with aggregates specially; this is consistent with the rest of IRgen.

Also, simplify EmitParmDecl and don't worry about using Decl::getNameAsString.

llvm-svn: 95393

show more ...


1...<<31323334353637383940>>...51