Revision tags: llvmorg-3.8.0-rc1 |
|
#
79db9171 |
| 15-Jan-2016 |
Rafael Espindola <rafael.espindola@gmail.com> |
Don't try to check all uses if lazy loading.
This means that LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN will not be set in a few cases.
This should have no impact in ld64 since it doesn't use lazy load
Don't try to check all uses if lazy loading.
This means that LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN will not be set in a few cases.
This should have no impact in ld64 since it doesn't use lazy loading when merging modules and that is when it checks LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN.
llvm-svn: 257915
show more ...
|
Revision tags: llvmorg-3.7.1, llvmorg-3.7.1-rc2, llvmorg-3.7.1-rc1 |
|
#
7b54b525 |
| 26-Oct-2015 |
David Blaikie <dblaikie@gmail.com> |
Remove assert(false) in favor of asserting the if conditional it is contained within.
Also adjust the code to avoid 3 redundant map lookups.
llvm-svn: 251327
|
#
980f8f26 |
| 09-Oct-2015 |
Duncan P. N. Exon Smith <dexonsmith@apple.com> |
CodeGen: Remove implicit conversions from Analysis and BranchFolding
Remove a few more implicit ilist iterator conversions, this time from Analysis.cpp and BranchFolding.cpp.
I added a few overload
CodeGen: Remove implicit conversions from Analysis and BranchFolding
Remove a few more implicit ilist iterator conversions, this time from Analysis.cpp and BranchFolding.cpp.
I added a few overloads for `remove()` and `erase()`, which quite naturally take pointers as well as iterators as parameters. This will reduce the churn at least in the short term, but I don't really have a problem with these existing for longer.
llvm-svn: 249867
show more ...
|
#
e4f9b09b |
| 05-Oct-2015 |
David Majnemer <david.majnemer@gmail.com> |
[WinEH] Update CATCHRET's operand to match its successor
The CATCHRET operand did not match the MachineFunction's CFG. This mismatch happened because FrameLowering created a new MachineBasicBlock a
[WinEH] Update CATCHRET's operand to match its successor
The CATCHRET operand did not match the MachineFunction's CFG. This mismatch happened because FrameLowering created a new MachineBasicBlock and updated the CFG but forgot to update the CATCHRET operand.
Let's make sure this doesn't happen again by strengthing the funclet membership analysis: it can now reason about the membership of all basic blocks, not just those inside of funclets.
llvm-svn: 249344
show more ...
|
#
16193552 |
| 04-Oct-2015 |
David Majnemer <david.majnemer@gmail.com> |
[WinEH] Permit branch folding in the face of funclets
Track which basic blocks belong to which funclets. Permit branch folding to fire but only if it can prove that doing so will not cause code in
[WinEH] Permit branch folding in the face of funclets
Track which basic blocks belong to which funclets. Permit branch folding to fire but only if it can prove that doing so will not cause code in one funclet to be reused in another.
llvm-svn: 249257
show more ...
|
#
0a92f86f |
| 28-Aug-2015 |
David Majnemer <david.majnemer@gmail.com> |
Revert r246232 and r246304.
This reverts isSafeToSpeculativelyExecute's use of ReadNone until we split ReadNone into two pieces: one attribute which reasons about how the function reasons about memo
Revert r246232 and r246304.
This reverts isSafeToSpeculativelyExecute's use of ReadNone until we split ReadNone into two pieces: one attribute which reasons about how the function reasons about memory and another attribute which determines how it may be speculated, CSE'd, trap, etc.
llvm-svn: 246331
show more ...
|
#
a787de32 |
| 28-Aug-2015 |
David Majnemer <david.majnemer@gmail.com> |
[CodeGen] isInTailCallPosition didn't consider readnone tailcalls
A readnone tailcall may still have a chain of computation which follows it that would invalidate a tailcall lowering. Don't skip th
[CodeGen] isInTailCallPosition didn't consider readnone tailcalls
A readnone tailcall may still have a chain of computation which follows it that would invalidate a tailcall lowering. Don't skip the analysis in such cases.
This fixes PR24613.
llvm-svn: 246304
show more ...
|
Revision tags: llvmorg-3.7.0, llvmorg-3.7.0-rc4, llvmorg-3.7.0-rc3, studio-1.4, llvmorg-3.7.0-rc2, llvmorg-3.7.0-rc1 |
|
#
44ede33a |
| 09-Jul-2015 |
Mehdi Amini <mehdi.amini@apple.com> |
Make TargetLowering::getPointerTy() taking DataLayout as an argument
Summary: This change is part of a series of commits dedicated to have a single DataLayout during compilation by using always the
Make TargetLowering::getPointerTy() taking DataLayout as an argument
Summary: This change is part of a series of commits dedicated to have a single DataLayout during compilation by using always the one owned by the module.
Reviewers: echristo
Subscribers: jholewinski, ted, yaron.keren, rafael, llvm-commits
Differential Revision: http://reviews.llvm.org/D11028
From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 241775
show more ...
|
#
56228dab |
| 09-Jul-2015 |
Mehdi Amini <mehdi.amini@apple.com> |
Redirect DataLayout from TargetMachine to Module in ComputeValueVTs()
Summary: Avoid using the TargetMachine owned DataLayout and use the Module owned one instead. This requires passing the DataLayo
Redirect DataLayout from TargetMachine to Module in ComputeValueVTs()
Summary: Avoid using the TargetMachine owned DataLayout and use the Module owned one instead. This requires passing the DataLayout up the stack to ComputeValueVTs().
This change is part of a series of commits dedicated to have a single DataLayout during compilation by using always the one owned by the module.
Reviewers: echristo
Subscribers: jholewinski, yaron.keren, rafael, llvm-commits
Differential Revision: http://reviews.llvm.org/D11019
From: Mehdi Amini <mehdi.amini@apple.com> llvm-svn: 241773
show more ...
|
Revision tags: llvmorg-3.6.2, llvmorg-3.6.2-rc1, llvmorg-3.6.1, llvmorg-3.6.1-rc1 |
|
#
e4310fe9 |
| 06-May-2015 |
Tim Northover <tnorthover@apple.com> |
CodeGen: move over-zealous assert into actual if statement.
It's quite possible to encounter an insertvalue instruction that's more deeply nested than the value we're looking for, but when that happ
CodeGen: move over-zealous assert into actual if statement.
It's quite possible to encounter an insertvalue instruction that's more deeply nested than the value we're looking for, but when that happens we really mustn't compare beyond the end of the index array.
Since I couldn't see any guarantees about what comparisons std::equal makes, we probably need to directly check the size beforehand. In practice, I suspect most std::equal implementations would probably bail early, which would be OK. But just in case...
rdar://20834485
llvm-svn: 236635
show more ...
|
#
851ff69b |
| 04-May-2015 |
Tim Northover <tnorthover@apple.com> |
CodeGen: match up correct insertvalue indices when assessing tail calls.
When deciding whether a value comes from the aggregate or inserted value of an insertvalue instruction, we compare the indice
CodeGen: match up correct insertvalue indices when assessing tail calls.
When deciding whether a value comes from the aggregate or inserted value of an insertvalue instruction, we compare the indices against those of the location we're interested in. One of the lists needs reversing because the input data is backwards (so that modifications take place at the end of the SmallVector), but we were reversing both before leading to incorrect results.
Should fix PR23408
llvm-svn: 236457
show more ...
|
Revision tags: llvmorg-3.5.2, llvmorg-3.5.2-rc1 |
|
#
4f6ac162 |
| 28-Feb-2015 |
Benjamin Kramer <benny.kra@googlemail.com> |
Replace std::copy with a back inserter with vector append where feasible
All of the cases were just appending from random access iterators to a vector. Using insert/append can grow the vector to the
Replace std::copy with a back inserter with vector append where feasible
All of the cases were just appending from random access iterators to a vector. Using insert/append can grow the vector to the perfect size directly and moves the growing out of the loop. No intended functionalty change.
llvm-svn: 230845
show more ...
|
Revision tags: llvmorg-3.6.0 |
|
#
f734a8ba |
| 20-Feb-2015 |
Eric Christopher <echristo@gmail.com> |
Get the function specific subtarget.
llvm-svn: 230038
|
Revision tags: llvmorg-3.6.0-rc4, llvmorg-3.6.0-rc3, llvmorg-3.6.0-rc2, llvmorg-3.6.0-rc1 |
|
#
7b068f6b |
| 14-Jan-2015 |
Mehdi Amini <mehdi.amini@apple.com> |
Add assertions for out of bound index in ComputeLinearIndex
llvm-svn: 225951
|
#
8923cc54 |
| 14-Jan-2015 |
Mehdi Amini <mehdi.amini@apple.com> |
Fold a loop for array processing in ComputeLinearIndex When processing an array, every Elt has the same layout, it is useless to recursively call each ComputeLinearIndex on each element. Just do
Fold a loop for array processing in ComputeLinearIndex When processing an array, every Elt has the same layout, it is useless to recursively call each ComputeLinearIndex on each element. Just do it once and multiply by the number of elements. Differential Revision: http://reviews.llvm.org/D6832
llvm-svn: 225949
show more ...
|
Revision tags: llvmorg-3.5.1, llvmorg-3.5.1-rc2, llvmorg-3.5.1-rc1 |
|
#
283bc2ed |
| 14-Nov-2014 |
Reid Kleckner <reid@kleckner.net> |
Allow the use of functions as typeinfo in landingpad clauses
This is one step towards supporting SEH filter functions in LLVM.
llvm-svn: 221954
|
Revision tags: llvmorg-3.5.0, llvmorg-3.5.0-rc4, llvmorg-3.5.0-rc3, llvmorg-3.5.0-rc2 |
|
#
d913448b |
| 04-Aug-2014 |
Eric Christopher <echristo@gmail.com> |
Remove the TargetMachine forwards for TargetSubtargetInfo based information and update all callers. No functional change.
llvm-svn: 214781
|
#
f21434cc |
| 30-Jul-2014 |
Rafael Espindola <rafael.espindola@gmail.com> |
Refactor duplicated code.
llvm-svn: 214328
|
Revision tags: llvmorg-3.5.0-rc1 |
|
#
480872b4 |
| 16-Jul-2014 |
Juergen Ributzka <juergen@apple.com> |
Remove TLI from isInTailCallPosition's arguments. NFC.
There is no need to pass on TLI separately to the function. As Eric pointed out the Target Machine already provides everything we need.
llvm-s
Remove TLI from isInTailCallPosition's arguments. NFC.
There is no need to pass on TLI separately to the function. As Eric pointed out the Target Machine already provides everything we need.
llvm-svn: 213108
show more ...
|
#
4ce9863d |
| 11-Jul-2014 |
Juergen Ributzka <juergen@apple.com> |
[FastISel] Make isInTailCallPosition independent of SelectionDAG.
Break out the arguemnts required from SelectionDAG, so that this function can also be used by FastISel.
llvm-svn: 212844
|
#
dda00098 |
| 25-Jun-2014 |
Eric Christopher <echristo@gmail.com> |
The includes were sorted. Revert r210578.
llvm-svn: 211737
|
#
576d36ae |
| 10-Jun-2014 |
Eric Christopher <echristo@gmail.com> |
Have isInTailCallPosition take the DAG so that we can use the version of TargetLowering/Machine from there on the way to avoiding TargetMachine in TargetLowering.
llvm-svn: 210579
|
#
09fc276d |
| 10-Jun-2014 |
Eric Christopher <echristo@gmail.com> |
Reorder includes to be sorted.
llvm-svn: 210578
|
#
db5028bd |
| 10-Jun-2014 |
Eric Christopher <echristo@gmail.com> |
Fix typos.
llvm-svn: 210571
|
Revision tags: llvmorg-3.4.2, llvmorg-3.4.2-rc1, llvmorg-3.4.1, llvmorg-3.4.1-rc2 |
|
#
c0196b1b |
| 14-Apr-2014 |
Craig Topper <craig.topper@gmail.com> |
[C++11] More 'nullptr' conversion. In some cases just using a boolean check instead of comparing to nullptr.
llvm-svn: 206142
|