| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
init.trampoline and adjust.trampoline intrinsics, into two intrinsics
like in GCC. While having one combined intrinsic is tempting, it is
not natural because typically the trampoline initialization needs to
be done in one function, and the result of adjust trampoline is needed
in a different (nested) function. To get around this llvm-gcc hacks the
nested function lowering code to insert an additional parent variable
holding the adjust.trampoline result that can be accessed from the child
function. Dragonegg doesn't have the luxury of tweaking GCC code, so it
stored the result of adjust.trampoline in the memory GCC set aside for
the trampoline itself (this is always available in the child function),
and set up some new memory (using an alloca) to hold the trampoline.
Unfortunately this breaks Go which allocates trampoline memory on the
heap and wants to use it even after the parent has exited (!). Rather
than doing even more hacks to get Go working, it seemed best to just use
two intrinsics like in GCC. Patch mostly by Sanjoy Das.
llvm-svn: 139140
|
| |
|
|
|
|
| |
landingpad and terminator).
llvm-svn: 139090
|
| |
|
|
| |
llvm-svn: 139023
|
| |
|
|
| |
llvm-svn: 138968
|
| |
|
|
|
|
| |
Duncan noticed this!
llvm-svn: 138967
|
| |
|
|
|
|
| |
which should be removed only when its invokes are.
llvm-svn: 138932
|
| |
|
|
| |
llvm-svn: 138931
|
| |
|
|
|
|
| |
The landingpad instruction can be removed only when its invokes are removed.
llvm-svn: 138930
|
| |
|
|
|
|
|
| |
Optimize chained bitcasts of the form A->B->A.
Undo r138722 and change isEliminableCastPair to allow this case.
llvm-svn: 138756
|
| |
|
|
| |
llvm-svn: 138722
|
| |
|
|
|
|
| |
getFirstNonPHI so that it will skip over the landingpad instructions as well.
llvm-svn: 138537
|
| |
|
|
|
|
| |
instruction should be marked as potentially reading and/or writing memory.
llvm-svn: 137863
|
| |
|
|
|
|
| |
check for a LandingPadInst.
llvm-svn: 137745
|
| |
|
|
| |
llvm-svn: 137712
|
| |
|
|
| |
llvm-svn: 137672
|
| |
|
|
| |
llvm-svn: 137664
|
| |
|
|
|
|
| |
write to memory.) Marking it as such makes some checks for immobility go away.
llvm-svn: 137655
|
| |
|
|
| |
llvm-svn: 137629
|
| |
|
|
| |
llvm-svn: 137575
|
| |
|
|
| |
llvm-svn: 137572
|
| |
|
|
|
|
| |
when combining add and sub instructions. Patch by Pranav Bhandarkar!
llvm-svn: 137570
|
| |
|
|
|
|
|
|
|
| |
- use SmallVectorImpl& for the function argument.
- ignore the operands on the GEP, even if they aren't constant! Much as we
pretend the malloc succeeds, we pretend that malloc + whatever-you-GEP'd-by
is not null. It's magic!
llvm-svn: 136757
|
| |
|
|
|
|
|
|
|
| |
Don't replace a gep/bitcast with 'undef' because that will form a "free(undef)"
which in turn means "unreachable". What we wanted was a no-op. Instead, analyze
the whole tree and look for all the instructions we need to delete first, then
delete them second, not relying on the use_list to stay consistent.
llvm-svn: 136752
|
| |
|
|
|
|
| |
malloc call.
llvm-svn: 136732
|
| |
|
|
|
|
|
|
|
| |
This adds the 'resume' instruction class, IR parsing, and bitcode reading and
writing. The 'resume' instruction resumes propagation of an existing (in-flight)
exception whose unwinding was interrupted with a 'landingpad' instruction (to be
added later).
llvm-svn: 136589
|
| |
|
|
| |
llvm-svn: 136585
|
| |
|
|
|
|
|
| |
r136339, r136341, r136369, r136387, r136392, r136396, r136429, r136430, r136444,
r136445, r136446, r136253 pending review.
llvm-svn: 136556
|
| |
|
|
|
|
| |
are combined together. <rdar://problem/9859829>
llvm-svn: 136435
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
specified in the same file that the library itself is created. This is
more idiomatic for CMake builds, and also allows us to correctly specify
dependencies that are missed due to bugs in the GenLibDeps perl script,
or change from compiler to compiler. On Linux, this returns CMake to
a place where it can relably rebuild several targets of LLVM.
I have tried not to change the dependencies from the ones in the current
auto-generated file. The only places I've really diverged are in places
where I was seeing link failures, and added a dependency. The goal of
this patch is not to start changing the dependencies, merely to move
them into the correct location, and an explicit form that we can control
and change when necessary.
This also removes a serialization point in the build because we don't
have to scan all the libraries before we begin building various tools.
We no longer have a step of the build that regenerates a file inside the
source tree. A few other associated cleanups fall out of this.
This isn't really finished yet though. After talking to dgregor he urged
switching to a single CMake macro to construct libraries with both
sources and dependencies in the arguments. Migrating from the two macros
to that style will be a follow-up patch.
Also, llvm-config is still generated with GenLibDeps.pl, which means it
still has slightly buggy dependencies. The internal CMake
'llvm-config-like' macro uses the correct explicitly specified
dependencies however. A future patch will switch llvm-config generation
(when using CMake) to be based on these deps as well.
This may well break Windows. I'm getting a machine set up now to dig
into any failures there. If anyone can chime in with problems they see
or ideas of how to solve them for Windows, much appreciated.
llvm-svn: 136433
|
| |
|
|
|
|
| |
This adds the new instructions 'landingpad' and 'resume'.
llvm-svn: 136253
|
| |
|
|
| |
llvm-svn: 135910
|
| |
|
|
| |
llvm-svn: 135904
|
| |
|
|
|
|
| |
ArrayRef.
llvm-svn: 135761
|
| |
|
|
|
|
| |
ConstantExpr::getGetElementPtr to use ArrayRef.
llvm-svn: 135758
|
| |
|
|
|
|
| |
it's used and not included where it isn't.
llvm-svn: 135628
|
| |
|
|
| |
llvm-svn: 135482
|
| |
|
|
| |
llvm-svn: 135478
|
| |
|
|
| |
llvm-svn: 135477
|
| |
|
|
|
|
|
|
| |
previously explicit non-default constructors were used.
Mostly mechanical with some manual reformatting.
llvm-svn: 135390
|
| |
|
|
| |
llvm-svn: 135375
|
| |
|
|
| |
llvm-svn: 135265
|
| |
|
|
| |
llvm-svn: 135251
|
| |
|
|
| |
llvm-svn: 135154
|
| |
|
|
|
|
| |
another use of sqrt. rdar://9763193
llvm-svn: 135058
|
| |
|
|
| |
llvm-svn: 135040
|
| |
|
|
|
|
| |
StructType::get() and TargetData::getIntPtrType().
llvm-svn: 134982
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
an assert on Darwin llvm-gcc builds.
Assertion failed: (castIsValid(op, S, Ty) && "Invalid cast!"), function Create, file /Users/buildslave/zorg/buildbot/smooshlab/slave-0.8/build.llvm-gcc-i386-darwin9-RA/llvm.src/lib/VMCore/Instructions.cpp, li\
ne 2067.
etc.
http://smooshlab.apple.com:8013/builders/llvm-gcc-i386-darwin9-RA/builds/2354
--- Reverse-merging r134893 into '.':
U include/llvm/Target/TargetData.h
U include/llvm/DerivedTypes.h
U tools/bugpoint/ExtractFunction.cpp
U unittests/Support/TypeBuilderTest.cpp
U lib/Target/ARM/ARMGlobalMerge.cpp
U lib/Target/TargetData.cpp
U lib/VMCore/Constants.cpp
U lib/VMCore/Type.cpp
U lib/VMCore/Core.cpp
U lib/Transforms/Utils/CodeExtractor.cpp
U lib/Transforms/Instrumentation/ProfilingUtils.cpp
U lib/Transforms/IPO/DeadArgumentElimination.cpp
U lib/CodeGen/SjLjEHPrepare.cpp
--- Reverse-merging r134888 into '.':
G include/llvm/DerivedTypes.h
U include/llvm/Support/TypeBuilder.h
U include/llvm/Intrinsics.h
U unittests/Analysis/ScalarEvolutionTest.cpp
U unittests/ExecutionEngine/JIT/JITTest.cpp
U unittests/ExecutionEngine/JIT/JITMemoryManagerTest.cpp
U unittests/VMCore/PassManagerTest.cpp
G unittests/Support/TypeBuilderTest.cpp
U lib/Target/MBlaze/MBlazeIntrinsicInfo.cpp
U lib/Target/Blackfin/BlackfinIntrinsicInfo.cpp
U lib/VMCore/IRBuilder.cpp
G lib/VMCore/Type.cpp
U lib/VMCore/Function.cpp
G lib/VMCore/Core.cpp
U lib/VMCore/Module.cpp
U lib/AsmParser/LLParser.cpp
U lib/Transforms/Utils/CloneFunction.cpp
G lib/Transforms/Utils/CodeExtractor.cpp
U lib/Transforms/Utils/InlineFunction.cpp
U lib/Transforms/Instrumentation/GCOVProfiling.cpp
U lib/Transforms/Scalar/ObjCARC.cpp
U lib/Transforms/Scalar/SimplifyLibCalls.cpp
U lib/Transforms/Scalar/MemCpyOptimizer.cpp
G lib/Transforms/IPO/DeadArgumentElimination.cpp
U lib/Transforms/IPO/ArgumentPromotion.cpp
U lib/Transforms/InstCombine/InstCombineCompares.cpp
U lib/Transforms/InstCombine/InstCombineAndOrXor.cpp
U lib/Transforms/InstCombine/InstCombineCalls.cpp
U lib/CodeGen/DwarfEHPrepare.cpp
U lib/CodeGen/IntrinsicLowering.cpp
U lib/Bitcode/Reader/BitcodeReader.cpp
llvm-svn: 134949
|
| |
|
|
| |
llvm-svn: 134888
|
| |
|
|
|
|
|
|
| |
more than one use.
Fixes PR10322.
llvm-svn: 134883
|
| |
|
|
|
|
|
| |
This tightens up checking for overflow in alloca sizes, based on feedback
from Duncan and John about the change in r132926.
llvm-svn: 134749
|