Commit Graph

8 Commits

Author SHA1 Message Date
Akira Hatanaka dd65d15d8c Generalize NRVO to cover C structs.
This commit generalizes NRVO to cover C structs (both trivial and
non-trivial structs).

rdar://problem/33599681

Differential Revision: https://reviews.llvm.org/D44968

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@328809 91177308-0d34-0410-b5e6-96231b3b80d8
2018-03-29 17:56:24 +00:00
Rafael Espindola 0e355701be Bring r325915 back.
The tests that failed on a windows host have been fixed.

Original message:

Start setting dso_local for COFF.

With this there are still some GVs where we don't set dso_local
because setGVProperties is never called. I intend to fix that in
followup commits. This is just the bare minimum to teach
shouldAssumeDSOLocal what it should do for COFF.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@325940 91177308-0d34-0410-b5e6-96231b3b80d8
2018-02-23 19:30:48 +00:00
Rafael Espindola 5626325f6c Revert "Start setting dso_local for COFF."
This reverts commit r325915.

It will take some time to fix the failures on a windows host.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@325929 91177308-0d34-0410-b5e6-96231b3b80d8
2018-02-23 18:09:29 +00:00
Rafael Espindola db74826fe1 Start setting dso_local for COFF.
With this there are still some GVs where we don't set dso_local
because setGVProperties is never called. I intend to fix that in
followup commits. This is just the bare minimum to teach
shouldAssumeDSOLocal what it should do for COFF.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@325915 91177308-0d34-0410-b5e6-96231b3b80d8
2018-02-23 15:32:32 +00:00
Daniel Neilson 59b6576b0e Change memcpy/memove/memset to have dest and source alignment attributes (Step 1).
Summary:
  Upstream LLVM is changing the the prototypes of the @llvm.memcpy/memmove/memset
intrinsics. This change updates the Clang tests for this change.

  The @llvm.memcpy/memmove/memset intrinsics currently have an explicit argument
which is required to be a constant integer. It represents the alignment of the
dest (and source), and so must be the minimum of the actual alignment of the
two.

 This change removes the alignment argument in favour of placing the alignment
attribute on the source and destination pointers of the memory intrinsic call.

 For example, code which used to read:
   call void @llvm.memcpy.p0i8.p0i8.i32(i8* %dest, i8* %src, i32 100, i32 4, i1 false)
will now read
   call void @llvm.memcpy.p0i8.p0i8.i32(i8* align 4 %dest, i8* align 4 %src, i32 100, i1 false)

 At this time the source and destination alignments must be the same (Step 1).
Step 2 of the change, to be landed shortly, will relax that contraint and allow
the source and destination to have different alignments.

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@322964 91177308-0d34-0410-b5e6-96231b3b80d8
2018-01-19 17:12:54 +00:00
Arnold Schwaighofer 35e713cfe4 Remove basic block label in test case
Another attempt to make a bot happy

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@284055 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-12 21:36:15 +00:00
Arnold Schwaighofer 87e888e3b5 Specify a target cpu in test case
Hopefully, this makes the bots happy

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@284048 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-12 20:30:24 +00:00
Arnold Schwaighofer 424fd11438 Declare WinX86_64ABIInfo to satisfy SwiftABI info
This is minimal support that allows swift's test cases on non windows platforms
to pass.

rdar://28738985

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@284032 91177308-0d34-0410-b5e6-96231b3b80d8
2016-10-12 18:59:24 +00:00