| Commit message (Collapse) | Author | Age | Files | Lines | 
| | 
| 
| 
| 
| 
| 
| 
| 
| 
|  | 
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
 | 
| | 
| 
| 
| 
| 
|  | 
makefile targets to find these better.
llvm-svn: 51143
 |