|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| | llvm-svn: 86748 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| | with multiple return values it inserts a PHI to merge them all together.
However, if the return values are all the same, it ends up with a pointless
PHI and this pointless PHI happens to really block SRoA from happening in 
at least a silly C++ example written by Doug, but probably others.  This 
fixes rdar://7339069.
llvm-svn: 85206 | 
| | 
| 
| 
| 
| 
| | updating the callgraph when introducing a call.
llvm-svn: 84310 | 
| | 
| 
| 
| 
| 
| 
| | where the element is of a basic builtin type.  For example, to get
an i8* use getInt8PtrTy.
llvm-svn: 83379 | 
| | 
| 
| 
| 
| 
| | update all the callers.
llvm-svn: 82889 | 
| | 
| 
| 
| | llvm-svn: 81138 | 
| | 
| 
| 
| 
| 
| | callgraph.  This is now dead because RAUW does the job.
llvm-svn: 80703 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | for sanity.  This didn't turn up any bugs.
Change CallGraphNode to maintain its "callsite" information in the 
call edges list as a WeakVH instead of as an instruction*.  This fixes
a broad class of dangling pointer bugs, and makes CallGraph have a number
of useful invariants again.  This fixes the class of problem indicated
by PR4029 and PR3601.
llvm-svn: 80663 | 
| | 
| 
| 
| 
| 
| | Use MDNodes to encode debug info in llvm IR.
llvm-svn: 80406 | 
| | 
| 
| 
| 
| 
| | a the list of static allocas that it inlined.
llvm-svn: 80203 | 
| | 
| 
| 
| | llvm-svn: 80202 | 
| | 
| 
| 
| 
| 
| | and other code cleanups.  No functionality change.
llvm-svn: 80199 | 
| | 
| 
| 
| | llvm-svn: 80073 | 
| | 
| 
| 
| 
| 
| 
| 
| | llvm.dbg.... global variables, to encode debugging information in llvm IR. This is mostly a mechanical change that tests metadata support very well.
This change speeds up llvm-gcc by more then 6% at "-O0 -g" (measured by compiling InstructionCombining.cpp!)
llvm-svn: 79977 | 
| | 
| 
| 
| | llvm-svn: 78948 | 
| | 
| 
| 
| | llvm-svn: 77635 | 
| | 
| 
| 
| | llvm-svn: 77516 | 
| | 
| 
| 
| | llvm-svn: 77494 | 
| | 
| 
| 
| 
| 
| | thanks to contexts-on-types.  More to come.
llvm-svn: 77011 | 
| | 
| 
| 
| | llvm-svn: 76702 | 
| | 
| 
| 
| 
| 
| | AllocaInst and MallocInst.
llvm-svn: 75863 | 
| | 
| 
| 
| | llvm-svn: 75703 | 
| | 
| 
| 
| 
| 
| | the [I|F]CmpInst constructors.  Who knew!?
llvm-svn: 75200 | 
| | 
| 
| 
| | llvm-svn: 74807 | 
| | 
| 
| 
| | llvm-svn: 71199 | 
| | 
| 
| 
| 
| 
| | llvm.dbg.region.end instrinsic. This nested llvm.dbg.func.start/llvm.dbg.region.end pair now enables DW_TAG_inlined_subroutine support in code generator.
llvm-svn: 69118 | 
| | 
| 
| 
| 
| 
| | Patch by Jay Foad.
llvm-svn: 68120 | 
| | 
| 
| 
| | llvm-svn: 66001 | 
| | 
| 
| 
| 
| 
| | per Chris' suggestion.  Slightly faster.
llvm-svn: 65999 | 
| | 
| 
| 
| 
| 
| 
| | calls with the tail marker when inlining them through an invoke.  Patch,
testcase, and perfect analysis by Jay Foad!
llvm-svn: 64364 | 
| | 
| 
| 
| | llvm-svn: 63618 | 
| | 
| 
| 
| | llvm-svn: 63600 | 
| | 
| 
| 
| | llvm-svn: 62384 | 
| | 
| 
| 
| | llvm-svn: 62377 | 
| | 
| 
| 
| 
| 
| | this fixes PR3332
llvm-svn: 62271 | 
| | 
| 
| 
| | llvm-svn: 62189 | 
| | 
| 
| 
| 
| 
| | arbitrary integer width for the count.
llvm-svn: 59823 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | g++ -m32 -c -g -DIN_GCC -W -Wall -Wwrite-strings -Wmissing-format-attribute -fno-common -mdynamic-no-pic -DHAVE_CONFIG_H -Wno-unused -DTARGET_NAME=\"i386-apple-darwin9.5.0\" -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include  -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include -DENABLE_LLVM -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/../llvm.src/include  -D_DEBUG  -D_GNU_SOURCE -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS   -I. -I. -I../../llvm-gcc.src/gcc -I../../llvm-gcc.src/gcc/. -I../../llvm-gcc.src/gcc/../include -I./../intl -I../../llvm-gcc.src/gcc/../libcpp/include  -I../../llvm-gcc.src/gcc/../libdecnumber -I../libdecnumber -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.obj/include -I/Volumes/Sandbox/Buildbot/llvm/full-llvm/build/llvm.src/include ../../llvm-gcc.src/gcc/llvm-types.cpp -o llvm-types.o
../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemCpy(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)':
../../llvm-gcc.src/gcc/llvm-convert.cpp:1496: error: 'memcpy_i32' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp:1496: error: 'memcpy_i64' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemMove(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)':
../../llvm-gcc.src/gcc/llvm-convert.cpp:1512: error: 'memmove_i32' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp:1512: error: 'memmove_i64' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp: In member function 'void TreeToLLVM::EmitMemSet(llvm::Value*, llvm::Value*, llvm::Value*, unsigned int)':
../../llvm-gcc.src/gcc/llvm-convert.cpp:1528: error: 'memset_i32' is not a member of 'llvm::Intrinsic'
../../llvm-gcc.src/gcc/llvm-convert.cpp:1528: error: 'memset_i64' is not a member of 'llvm::Intrinsic'
make[3]: *** [llvm-convert.o] Error 1
make[3]: *** Waiting for unfinished jobs....
rm fsf-funding.pod gcov.pod gfdl.pod cpp.pod gpl.pod gcc.pod
make[2]: *** [all-stage1-gcc] Error 2
make[1]: *** [stage1-bubble] Error 2
make: *** [all] Error 2
llvm-svn: 59809 | 
| | 
| 
| 
| | llvm-svn: 59802 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | s/ParamAttr/Attribute/g
s/PAList/AttrList/g
s/FnAttributeWithIndex/AttributeWithIndex/g
s/FnAttr/Attribute/g
This sets the stage 
- to implement function notes as function attributes and 
- to distinguish between function attributes and return value attributes.
This requires corresponding changes in llvm-gcc and clang.
llvm-svn: 56622 | 
| | 
| 
| 
| | llvm-svn: 56513 | 
| | 
| 
| 
| 
| 
| 
| | long as the callgraph is correct.  It checks
for wrong callgraphs more strictly.
llvm-svn: 55894 | 
| | 
| 
| 
| 
| 
| | commit.
llvm-svn: 55865 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | because it does not maintain a correct list
of callsites.  I discovered (see following
commit) that the inliner will create a wrong
callgraph if it is fed a callgraph with
correct edges but incorrect callsites.  These
were created by Prune-EH, and while it wasn't
done via removeCallEdgeTo, it could have been
done via removeCallEdgeTo, which is an accident
waiting to happen.  Use removeCallEdgeFor
instead.
llvm-svn: 55859 | 
| | 
| 
| 
| | llvm-svn: 55835 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | In particular, Collector was confusing to implementors. Several
thought that this compile-time class was the place to implement
their runtime GC heap. Of course, it doesn't even exist at runtime.
Specifically, the renames are:
  Collector               -> GCStrategy
  CollectorMetadata       -> GCFunctionInfo
  CollectorModuleMetadata -> GCModuleInfo
  CollectorRegistry       -> GCRegistry
  Function::getCollector  -> getGC (setGC, hasGC, clearGC)
Several accessors and nested types have also been renamed to be
consistent. These changes should be obvious.
llvm-svn: 54899 | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| 
| | Remove the GetResultInst instruction. It is still accepted in LLVM assembly
and bitcode, where it is now auto-upgraded to ExtractValueInst. Also, remove
support for return instructions with multiple values. These are auto-upgraded
to use InsertValueInst instructions.
The IRBuilder still accepts multiple-value returns, and auto-upgrades them
to InsertValueInst instructions.
llvm-svn: 53941 | 
| | 
| 
| 
| | llvm-svn: 52606 | 
| | 
| 
| 
| | llvm-svn: 52544 | 
| | 
| 
| 
| 
| 
| 
| | return statements and aggregate returns so that it handles both
correctly.
llvm-svn: 52519 |