Devang Patel
eddab1d186
Introduce support to encode Objective-C property information in debugging information generated for an interface.
...
llvm-svn: 129624
2011-04-16 00:11:51 +00:00
Chris Lattner
0304b82f80
Fix a ton of comment typos found by codespell. Patch by
...
Luis Felipe Strano Moraes!
llvm-svn: 129558
2011-04-15 05:18:47 +00:00
Nick Lewycky
80f6aaa390
Use positive values since the value type is unsigned. Fixes a warning on the
...
llvm-gcc-native-mingw32 builder.
llvm-svn: 129457
2011-04-13 18:46:22 +00:00
Nick Lewycky
7ee6960a5f
Make IRBuilder support StringRef for building strings.
...
Also document that the global variables produced are mergable.
llvm-svn: 129330
2011-04-12 00:29:07 +00:00
Chris Lattner
8018f67b28
fix doc comment bug, noticed by Jochen
...
llvm-svn: 129186
2011-04-09 02:33:29 +00:00
Nick Lewycky
fccee4ca24
Add support for ArrayRef in IRBuilder's CreateCall.
...
llvm-svn: 129039
2011-04-07 00:03:25 +00:00
Nick Lewycky
e15c6c11b4
Add an empty key for DebugLoc so that you can store an empty DebugLoc in a
...
DenseMap.
llvm-svn: 128994
2011-04-06 06:49:59 +00:00
Nick Lewycky
dfed8e0ff5
Support using DebugLoc's in a DenseMap.
...
llvm-svn: 128988
2011-04-06 05:36:52 +00:00
Andrew Trick
f275156c40
Fix a typo.
...
llvm-svn: 128912
2011-04-05 19:13:11 +00:00
Andrew Trick
7e2e555075
Added *hidden* flags -print-options and -print-all-options so
...
developers can see if their driver changed any cl::Option's. The
current implementation isn't perfect but handles most kinds of
options. This is nice to have when decomposing the stages of
compilation and moving between different drivers. It's also a good
sanity check when comparing results produced by different command line
invocations that are expected to produce the comparable results.
Note: This is not an attempt to prolong the life of cl::Option. On the
contrary, it's a placeholder for a feature that must exist when
cl::Option is replaced by a more appropriate framework. A new
framework needs: a central option registry, dynamic name lookup,
non-global containers of option values (e.g. per-module,
per-function), *and* the ability to print options values and their defaults at
any point during compilation.
llvm-svn: 128910
2011-04-05 18:54:36 +00:00
Frits van Bommel
4efc489131
Remove the LLVMContext& arguments from *Folder constructors, as they don't seem to be used anywhere.
...
llvm-svn: 128793
2011-04-03 19:46:28 +00:00
Michael J. Spencer
b127b18668
Fix whitespace.
...
llvm-svn: 128631
2011-03-31 13:06:39 +00:00
Michael J. Spencer
c96db7725b
Switch FileRemover from PathV1 to V2.
...
llvm-svn: 128630
2011-03-31 13:04:19 +00:00
Jay Foad
53632b7c03
Remove PHINode::reserveOperandSpace(). Instead, add a parameter to
...
PHINode::Create() giving the (known or expected) number of operands.
llvm-svn: 128537
2011-03-30 11:28:46 +00:00
Rafael Espindola
9e0fcfc02b
We don't need a null terminator for the output file.
...
llvm-svn: 128098
2011-03-22 19:20:47 +00:00
Ted Kremenek
d582517a58
Properly initialize all fields in CrashReporterCleanupContext. This caused the buildbot failure earlier.
...
llvm-svn: 128071
2011-03-22 04:33:13 +00:00
Ted Kremenek
371ad9a265
Rework CrashRecoveryContextCleanup to provide a simpler way to create cleanup objects, and provide a new cleanup for
...
decrementing reference counts of objects with intrusive reference counts.
llvm-svn: 128055
2011-03-22 01:15:10 +00:00
Ted Kremenek
a462a53e0b
Provide a means for CrashRecovery clients to determine if code is currently running while crash recovery cleanups are being processed.
...
llvm-svn: 128008
2011-03-21 18:38:03 +00:00
Ted Kremenek
c4fa37479a
Tweak CrashRecoveryContextCleanup to provide an easy method for clients to select between 'delete' and 'destructor' cleanups, and allow the destructor of CrashRecoveryContextCleanupRegister to be pseudo re-entrant.
...
llvm-svn: 127929
2011-03-19 00:59:37 +00:00
Jim Grosbach
e6c2e66311
Tidy up.
...
llvm-svn: 127883
2011-03-18 16:39:36 +00:00
Ted Kremenek
c7c75361fa
Tweak CrashRecoveryContextCleanup::createCleanup() to use the 'delete' cleanup as opposed to the 'destructor' cleanup (reclaims more memory).
...
llvm-svn: 127865
2011-03-18 03:46:21 +00:00
Ted Kremenek
4a4428a5bc
Add new CrashRecoveryContextCleanup subclass: CrashRecoveryContextDeleteCleanup. This deletes the object, not just calls its destructor.
...
llvm-svn: 127855
2011-03-18 03:04:18 +00:00
Ted Kremenek
1a2fa05e5f
Augment CrashRecoveryContext to have registered "cleanup" objects that can be used to release resources during a crash.
...
llvm-svn: 127849
2011-03-18 02:05:11 +00:00
Rafael Espindola
3ecf930d14
Use RequiresNullTerminator to create buffers without a null terminator
...
instead of copying.
llvm-svn: 127835
2011-03-17 22:18:42 +00:00
John McCall
cb1d6e9690
Version N of the llvm_unreachable patch: VC++ doesn't recognize that abort()
...
doesn't return, so just go back to using the old runtime function instead
of trying to use abort() when __builtin_unreachable (or an equivalent) isn't
supported.
llvm-svn: 127629
2011-03-14 22:41:50 +00:00
John McCall
952cbb2634
Okay, some compilers complain if you provide the exception-specification
...
where none was before. Just don't declare it and hope it's declared
in every translation unit that needs it.
llvm-svn: 127612
2011-03-14 20:20:29 +00:00
John McCall
46f704310d
Fix the exception-specification of abort() when declaring it in C++.
...
llvm-svn: 127610
2011-03-14 20:10:50 +00:00
John McCall
fe51bf5de7
Make llvm_unreachable evaluate to __builtin_unreachable() in -Asserts
...
builds, which was the apparent consensus of PR8973 and llvmdev.
llvm-svn: 127608
2011-03-14 20:01:21 +00:00
Mikhail Glushenkov
5a7b935681
Emacs mode string.
...
llvm-svn: 127576
2011-03-14 04:20:57 +00:00
Rafael Espindola
a271db1a12
Add r127409 back now that the windows file was updated.
...
llvm-svn: 127417
2011-03-10 18:33:29 +00:00
Jakob Stoklund Olesen
891bfab351
Revert r127409 which broke all the Windows bots.
...
llvm-svn: 127413
2011-03-10 18:01:43 +00:00
Rafael Espindola
b7a2d86ef5
Add support for MemoryBuffers that are not null terminated and add
...
support for creating buffers that cover only a part of a file.
llvm-svn: 127409
2011-03-10 16:10:30 +00:00
Dan Gohman
b62daa9ec3
Make pred_iterator DefaultConstructible, and add an accessor to
...
retrieve the underlying getOperandNo() value.
llvm-svn: 126804
2011-03-02 00:11:28 +00:00
Dan Gohman
4694b04817
Escape graph edge labels.
...
llvm-svn: 126788
2011-03-01 22:12:24 +00:00
Dan Gohman
ec55e3d750
Remove the showline argument from the SMDiagnostic constructor
...
which constructs a diagnostic with no line to show.
llvm-svn: 126787
2011-03-01 22:11:52 +00:00
Dan Gohman
bf282415a2
Code simplification.
...
llvm-svn: 126786
2011-03-01 22:07:55 +00:00
Dan Gohman
c6cda9defe
Change directory_entry::path() to return a const std::string & instead of
...
a StringRef, for the benefit of clients that want the result as a
nul-terminated string. Clients that expect a StringRef will get one via
the implicit conversion.
llvm-svn: 126784
2011-03-01 22:07:09 +00:00
Chris Lattner
877ce8549d
add a missing const qualifier for consistency.
...
llvm-svn: 126742
2011-03-01 08:36:21 +00:00
Tobias Grosser
789fab6b30
Pass the graph to the DOTGraphTraits.getEdgeAttributes().
...
This follows the interface of getNodeAttributes.
llvm-svn: 126562
2011-02-27 04:11:03 +00:00
Nick Lewycky
ed7f556f44
Update the NoFolder to work with current IRBuilder.
...
llvm-svn: 126479
2011-02-25 07:13:35 +00:00
Michael J. Spencer
3c784e25d6
Depricate PathV1::isAbsolute.
...
llvm-svn: 126348
2011-02-24 01:02:32 +00:00
Devang Patel
918feedd44
Remove unused tag.
...
llvm-svn: 125988
2011-02-18 23:23:09 +00:00
Devang Patel
7bc042d9d4
Provide tag strings for llvm specific tags.
...
llvm-svn: 125986
2011-02-18 23:06:29 +00:00
Chris Lattner
9f386640da
Now that -loop-idiom uses TargetLibraryInfo properly, it doesn't
...
need to be pulled out of the pass manager when the user specifies
-fno-builtin. It can intelligently determine which libcalls to
optimize based on what is enabled in TargetLibraryInfo. This
allows -fno-builtin-foo to work someday.
llvm-svn: 125981
2011-02-18 22:36:36 +00:00
Chris Lattner
2d216b82ee
rearrange some comments, no functionality change.
...
llvm-svn: 125972
2011-02-18 22:21:07 +00:00
Nick Lewycky
5c854580b2
Teach PatternMatch that splat vectors could be floating point as well as
...
integer. Fixes PR9228!
llvm-svn: 125613
2011-02-15 23:13:23 +00:00
Zhanyong Wan
c1bc219fc1
Adds llvm::sys::path::is_separator() to test whether a char is a path separator
...
on the host OS. Reviewed by dgregor.
llvm-svn: 125406
2011-02-11 21:24:40 +00:00
Chris Lattner
63f1d56458
switch the constantexpr, target folder, and IRBuilder interfaces
...
for NSW/NUW binops to follow the pattern of exact binops. This
allows someone to use Builder.CreateAdd(x, y, "tmp", MaybeNUW);
llvm-svn: 125270
2011-02-10 07:01:55 +00:00
Douglas Gregor
0044fad1e6
Rip out realpath() support. It's expensive, and often a bad idea, and
...
I have another way to achieve the same goal.
llvm-svn: 125239
2011-02-09 23:33:15 +00:00
Douglas Gregor
75fafed2fd
Add llvm::sys::path::canonical(), which provides the canonicalized
...
name of a path, after resolving symbolic links and eliminating excess
path elements such as "foo/../" and "./".
This routine still needs a Windows implementation, but I don't have a
Windows machine available. Help? Please?
llvm-svn: 125228
2011-02-09 22:11:23 +00:00
Chris Lattner
7468ab4b90
Rework InstrTypes.h so to reduce the repetition around the NSW/NUW/Exact
...
versions of creation functions. Eventually, the "insertion point" versions
of these should just be removed, we do have IRBuilder afterall.
Do a massive rewrite of much of pattern match. It is now shorter and less
redundant and has several other widgets I will be using in other patches.
Among other changes, m_Div is renamed to m_IDiv (since it only matches
integer divides) and m_Shift is gone (it used to match all binops!!) and
we now have m_LogicalShift for the one client to use.
Enhance IRBuilder to have "isExact" arguments to things like CreateUDiv
and reduce redundancy within IRbuilder by having these methods chain to
each other more instead of duplicating code.
llvm-svn: 125194
2011-02-09 17:00:45 +00:00
Chris Lattner
8a576b802f
enrich folder interfaces around exactness.
...
llvm-svn: 125191
2011-02-09 16:44:36 +00:00
Rafael Espindola
43f9672afa
Don't open the file again in the gold plugin. To be able to do this, update
...
MemoryBuffer::getOpenFile to not close the file descriptor.
llvm-svn: 125128
2011-02-08 22:40:47 +00:00
Duncan Sands
7c3f34d524
Add an m_Div pattern for matching either a udiv or an sdiv and use it
...
to simplify the "(X/Y)*Y->X when the division is exact" transform.
llvm-svn: 125004
2011-02-07 09:36:32 +00:00
Duncan Sands
edd8383ed9
Add IRBuilder methods for creating an exact udiv, like for exact sdiv.
...
llvm-svn: 125002
2011-02-07 09:21:52 +00:00
Jason W Kim
056e5aacb7
Teach ARM/MC/ELF about EF_ARM_EABI_VERSION. The magic number is set to
...
5 to match the current doc.
Added FIXME reminder Make it really configurable later.
llvm-svn: 124899
2011-02-04 21:41:11 +00:00
Daniel Dunbar
d2c741c07a
raw_fd_ostream: Add a SetUseAtomicWrites() method (uses writev).
...
llvm-svn: 124771
2011-02-03 03:32:32 +00:00
Duncan Sands
c03dbe4b1c
Add a m_Undef pattern for convenience. This is so that code that uses
...
pattern matching can also pattern match undef, creating a more uniform
style.
llvm-svn: 124657
2011-02-01 09:06:20 +00:00
Duncan Sands
659237307a
Add a m_SignBit pattern for convenience.
...
llvm-svn: 124656
2011-02-01 08:50:33 +00:00
Duncan Sands
06e82c76ee
Have m_One also match constant vectors for which every element is 1.
...
llvm-svn: 124655
2011-02-01 08:39:12 +00:00
Rafael Espindola
aefd549139
Delay the creation of eh_frame so that the user can change the defaults.
...
Add support for SHT_X86_64_UNWIND.
llvm-svn: 124059
2011-01-23 05:43:40 +00:00
Rafael Espindola
492ad6ca06
Remove more duplicated code.
...
llvm-svn: 124056
2011-01-23 04:43:11 +00:00
Chris Lattner
dc44d098ae
add DW_TAG for rvalue refs.
...
llvm-svn: 124019
2011-01-22 01:47:25 +00:00
Michael J. Spencer
d54bad63f7
Object: Add ELF support.
...
llvm-svn: 123896
2011-01-20 06:38:47 +00:00
Cameron Zwarich
821fbde8c0
Remove an unnecessary #include.
...
llvm-svn: 123877
2011-01-20 03:56:35 +00:00
Jim Grosbach
a55f759249
Trailing whitespace.
...
llvm-svn: 123665
2011-01-17 18:34:03 +00:00
Devang Patel
0e3796a7a0
Revert rr123550. It causes clang build failure on darwin9.
...
llvm-svn: 123661
2011-01-17 17:34:43 +00:00
Michael J. Spencer
971bf61475
Support/GraphWriter: Replace all internal uses of PathV1 with PathV2. The external API still uses PathV1.
...
llvm-svn: 123550
2011-01-15 21:43:25 +00:00
Michael J. Spencer
e1defa51ae
Support/PathV2: Add identify_magic.
...
llvm-svn: 123548
2011-01-15 20:39:36 +00:00
Michael J. Spencer
78fc0cacd0
Support/PathV2: Implement get_magic.
...
llvm-svn: 123544
2011-01-15 18:52:33 +00:00
Chris Lattner
934c574ef9
Fix m_Not and m_Neg to not match random ConstantInt's. Before
...
these would try hard to match constants by inverting the bits
and recursively matching. There are two problems with this:
1) some patterns would match when we didn't want them to (theoretical)
2) this is insanely expensive to do, and most often pointless.
This was apparently useful in just 2 instcombine cases, which I
added code to handle explicitly. This change speeds up 'opt'
time on 176.gcc by 1% and produces bitwise identical code.
llvm-svn: 123518
2011-01-15 05:52:27 +00:00
Chris Lattner
c0bd89331e
switch the second scalarrepl pass to use SSAUpdater. We run two scalarrepl passes: one
...
early in the cleanup code and one late interlaced with the inliner. The second one is
important because inlining and other scalar optzns can unpin allocas, allowing them to
be split up and promoted. While important for performance, this is also relatively
rare, and we would previously force a (non-lazy) computation of DomFrontiers, which
happened even if nothing became unpinned.
With this patch, the first pass of scalarrepl still promotes the vast bulk of allocas
in programs, but hte second pass has changed to use SSAUpdater, which is more "sparse"
and lazy. This speeds up opt -O3 time on kimwitu++ (a c++ app) by about 1%. The
numbers are interesting: the first pass promotes ~17500 allocas. The second pass
promotes about 1600. For non-C++ codes, the compile time win should be greater,
because the second pass of scalarrepl does less.
llvm-svn: 123437
2011-01-14 08:21:08 +00:00
Owen Anderson
6de2a4d67c
Rather than doing early instcombine, try doing early CSE instead. This should still handle
...
most important simplifications, as well as resolving phase ordering issues where instcombine
would inhibit important CSE'ing opportunities, for instance on BitBench/drop3.
llvm-svn: 123418
2011-01-14 00:41:11 +00:00
Owen Anderson
e9841116c0
Don't bother conditionalizing the use of SROA in -O1 mode. We're already running it unconditionally
...
later in the pipeline.
llvm-svn: 123416
2011-01-14 00:36:40 +00:00
Michael J. Spencer
b9cf8adbe7
Support/Path: Deprecate PathV1::IsSymlink and replace all uses with PathV2::is_symlink.
...
llvm-svn: 123345
2011-01-12 23:55:06 +00:00
Michael J. Spencer
6d4a8a7b72
Support/Path: Deprecate PathV1::isDirectory and replace all uses with PathV2::is_directory.
...
llvm-svn: 123209
2011-01-11 01:21:55 +00:00
Michael J. Spencer
917b043a16
Support/Path: Deprecate PathV1::exists and replace all uses with PathV2::fs::exists.
...
llvm-svn: 123151
2011-01-10 02:34:23 +00:00
Bob Wilson
70abb04bf5
Revert svn 122743, removing the instcombine pass that was replaced by earlycse.
...
My i386 llvm-gcc nightly tester found a regression for
SingleSource/Benchmarks/McGill/chomp that a bisect blamed on 122743.
That seems strange but apparently the combination of earlycse and instcombine
did something bad. Chris says he intended to remove the instcombine pass, so
let's go ahead and try that. We'll see if there are any performance losses.
llvm-svn: 122907
2011-01-05 21:16:50 +00:00
Chris Lattner
de8f64f331
Fix PR8906: -fno-builtin should disable loop-idiom recognition.
...
It forms memset and memcpy's, and will someday form popcount and
other stuff. All of this is bad when compiling the implementation
of memset, memcpy, popcount, etc.
llvm-svn: 122854
2011-01-05 01:03:32 +00:00
Evan Cheng
7465840a55
Undo what looks like accidental removal of an instcombine pass in r122740.
...
llvm-svn: 122743
2011-01-03 07:53:18 +00:00
Chris Lattner
ac005f0653
Turn on earlycse by default. This seems to be a small performance
...
improvement in the generated code, and speeds up 'opt -std-compile-opts'
compile time on 176.gcc from 24.84s to 23.2s (about 7%).
This also resolves a specific code quality issue in rdar://7352081 which
was generating poor code for:
int t(int a, int b) {
if (a & b & 1)
return a & b;
return 3;
}
llvm-svn: 122740
2011-01-03 06:19:09 +00:00
Chris Lattner
85f8315219
Enhance ScopedHashTable to allow it to take an allocator argument.
...
llvm-svn: 122721
2011-01-03 01:29:37 +00:00
Chris Lattner
e2ca13d366
turn on memset idiom recognition by default. Though there are still lots of
...
limitations, this kicks in dozens of times in the 4 specfp2000 benchmarks,
and hundreds of times in the int part. It also kicks in hundreds of times
in multisource.
This kicks in right before loop deletion, which has the pleasant effect of
deleting loops that *just* do a memset.
llvm-svn: 122664
2011-01-01 20:39:18 +00:00
Michael J. Spencer
b604751adb
Support/Path: Deprecate Path::hasMagicNumber and replace all uses with fs::has_magic.
...
llvm-svn: 122589
2010-12-28 01:49:21 +00:00
Michael J. Spencer
6d174b7e25
Fix typo.
...
llvm-svn: 122588
2010-12-28 01:49:10 +00:00
Michael J. Spencer
018595cf3a
Support/PathV2: Implement has_magic.
...
llvm-svn: 122587
2010-12-28 01:49:01 +00:00
Michael J. Spencer
26654048d7
Support/PathV1: Deprecate GetRootDirectory.
...
llvm-svn: 122580
2010-12-27 03:21:41 +00:00
Chris Lattner
a46fd80777
add methods to IRBuilder to create memcpy/memset/memmove.
...
llvm-svn: 122571
2010-12-26 22:49:25 +00:00
Michael J. Spencer
b3e50a570f
Support/PathV1: Deprecate makeAbsolute and remove Unix impl because it annoys people.
...
llvm-svn: 122553
2010-12-25 20:10:11 +00:00
Owen Anderson
c1eee5ac49
Revert r122114 (CallbackVH observing use-list changes) because it caused severe slowdowns on the Linux self-host configuration.
...
llvm-svn: 122279
2010-12-20 22:28:03 +00:00
Bill Wendling
265b7b81b6
This is still used and issuing an annoying warning. Don't deprecate something in
...
the library unless *all* uses have been converted over to the new form.
llvm-svn: 122267
2010-12-20 21:14:18 +00:00
Michael J. Spencer
4781534e1c
Fix spelling.
...
llvm-svn: 122244
2010-12-20 13:30:37 +00:00
Chris Lattner
4ce6f60782
add a version of IRBuilder::SetInsertPoint that takes an instruction.
...
llvm-svn: 122180
2010-12-19 19:16:22 +00:00
Michael J. Spencer
0e0c7c269f
Support/PathV1: Clarify deprecation warning.
...
llvm-svn: 122159
2010-12-18 22:23:24 +00:00
Michael J. Spencer
4701f704be
Support/PathV1: Deprecate get{Basename,Dirname,Suffix}.
...
llvm-svn: 122157
2010-12-18 22:23:07 +00:00
Eric Christopher
4e2b6c0e28
Header warning patrol.
...
llvm-svn: 122152
2010-12-18 10:54:29 +00:00
Owen Anderson
7103acd18e
Revert r122143 through r122140, which collectively broke the LLVMC tests on
...
the buildbots.
llvm-svn: 122149
2010-12-18 07:37:18 +00:00
Michael J. Spencer
b70c703b01
Support/PathV1: Clarify deprecation warning.
...
llvm-svn: 122143
2010-12-18 04:13:54 +00:00
Michael J. Spencer
6d64a36ced
Support/PathV1: Deprecate get{Basename,Dirname,Suffix}.
...
llvm-svn: 122141
2010-12-18 04:13:36 +00:00
Michael J. Spencer
bb238417bb
Support/PathV1: Deprecate getLast.
...
llvm-svn: 122116
2010-12-18 00:19:10 +00:00
Owen Anderson
702d715185
Add support to CallbackVH to receive notification when a Value's use-list changes.
...
llvm-svn: 122114
2010-12-18 00:07:15 +00:00
Michael J. Spencer
bc84ff581f
Fix 80 col.
...
llvm-svn: 122089
2010-12-17 21:32:47 +00:00
Michael J. Spencer
f2bf8518fb
Support/Path: Deprecate PathV1::isAbsolute.
...
llvm-svn: 122086
2010-12-17 21:21:31 +00:00
Benjamin Kramer
89db30db3a
Pass StringRefs by value, for consistency.
...
llvm-svn: 122074
2010-12-17 18:19:06 +00:00
Michael J. Spencer
63aaa03399
Support: Rename Path.h to PathV1.h and add a new Path.h that includes both V1 and V2.
...
llvm-svn: 122065
2010-12-17 17:22:36 +00:00
Chris Lattner
e92f8121d4
improve switch formation to handle small range
...
comparisons formed by comparisons. For example,
this:
void foo(unsigned x) {
if (x == 0 || x == 1 || x == 3 || x == 4 || x == 6)
bar();
}
compiles into:
_foo: ## @foo
## BB#0: ## %entry
cmpl $6, %edi
ja LBB0_2
## BB#1: ## %entry
movl %edi, %eax
movl $91, %ecx
btq %rax, %rcx
jb LBB0_3
instead of:
_foo: ## @foo
## BB#0: ## %entry
cmpl $2, %edi
jb LBB0_4
## BB#1: ## %switch.early.test
cmpl $6, %edi
ja LBB0_3
## BB#2: ## %switch.early.test
movl %edi, %eax
movl $88, %ecx
btq %rax, %rcx
jb LBB0_4
This catches a bunch of cases in GCC, which look like this:
%804 = load i32* @which_alternative, align 4, !tbaa !0
%805 = icmp ult i32 %804, 2
%806 = icmp eq i32 %804, 3
%or.cond121 = or i1 %805, %806
%807 = icmp eq i32 %804, 4
%or.cond124 = or i1 %or.cond121, %807
br i1 %or.cond124, label %.thread, label %808
turning this into a range comparison.
llvm-svn: 122045
2010-12-17 06:20:15 +00:00
Michael J. Spencer
86f6a9ac6e
MemoryBuffer now return an error_code and returns a OwningPtr<MemoryBuffer> via an out parm.
...
llvm-svn: 121958
2010-12-16 03:29:14 +00:00
Rafael Espindola
37a22419ce
Typo.
...
llvm-svn: 121906
2010-12-15 22:33:06 +00:00
Rafael Espindola
102a0b7b74
Generalize an assert.
...
llvm-svn: 121851
2010-12-15 07:12:24 +00:00
Nick Lewycky
0177564114
Remove dead header.
...
llvm-svn: 121463
2010-12-10 05:12:54 +00:00
Michael J. Spencer
95b8bf9f67
Fix whitespace.
...
llvm-svn: 121382
2010-12-09 17:37:32 +00:00
Michael J. Spencer
1d95a8f9bc
Support/FileSystem: Change file_status predicate functions that cannot fail to
...
return their result instead of an error_code. Also add some missing predicate
functions.
llvm-svn: 121380
2010-12-09 17:37:02 +00:00
Michael J. Spencer
15483143ec
Support/MemoryBuffer: Replace all uses of std::string *ErrMsg with error_code &ec. And fix clients.
...
llvm-svn: 121379
2010-12-09 17:36:48 +00:00
Michael J. Spencer
3885add959
Support: Remove Alarm. It is unused (via local grep and google code search).
...
llvm-svn: 121160
2010-12-07 18:41:59 +00:00
Michael J. Spencer
3dc94b3cc1
Support/PathV2: Remove const from bool return types.
...
llvm-svn: 121157
2010-12-07 18:12:07 +00:00
Michael J. Spencer
cda94ff1f3
Fix spelling.
...
llvm-svn: 121156
2010-12-07 18:11:54 +00:00
Michael J. Spencer
a679d9b91b
Support: Remove DynamicLinker.h. It is unused and unimplemented.
...
llvm-svn: 121155
2010-12-07 18:11:38 +00:00
Michael J. Spencer
7979bb402f
Support/PathV2: Change most functions in the path namespace to return their work
...
via their return value instead of an out parameter.
llvm-svn: 121149
2010-12-07 17:04:04 +00:00
Michael J. Spencer
a96fe51fa6
Support/PathV2: Remove the error_code return type from all functions in the path
...
namespace. None of them return anything except for success anyway. These will be
converted to returning their result soon.
llvm-svn: 121109
2010-12-07 03:57:37 +00:00
Michael J. Spencer
7c3efd63d4
Support/PathV2: Move make_absolute from path to fs.
...
llvm-svn: 121108
2010-12-07 03:57:17 +00:00
Michael J. Spencer
a59a7b3965
Support/PathV2: Clarify and correct documentation.
...
llvm-svn: 121091
2010-12-07 01:23:08 +00:00
Michael J. Spencer
898af0f235
Support/PathV2: Move current_path from path to fs and fix the Unix implementation.
...
Unix bug spotted by Dan Gohman.
llvm-svn: 121090
2010-12-07 01:22:31 +00:00
Frits van Bommel
f7368778bc
Fix clang warning: "extra ';' inside a class [-pedantic]".
...
llvm-svn: 120998
2010-12-06 10:48:11 +00:00
Michael J. Spencer
244b426701
Support/FileSystem: Add directory_iterator implementation.
...
llvm-svn: 120989
2010-12-06 04:28:42 +00:00
Michael J. Spencer
5a2272dcef
Support/FileSystem: Add status implementation.
...
llvm-svn: 120870
2010-12-04 00:32:40 +00:00
Michael J. Spencer
8754a822bb
Support/SystemError: Make error_category and error_code auto-bool-conversion-safe.
...
llvm-svn: 120869
2010-12-04 00:32:24 +00:00
Michael J. Spencer
4e1623c715
Support/FileSystem: Add unique_file and exists implementations.
...
llvm-svn: 120776
2010-12-03 01:21:28 +00:00
Michael J. Spencer
15c61ef434
Support/FileSystem: Remove temp_directory_path.
...
llvm-svn: 120775
2010-12-03 01:21:04 +00:00
Michael J. Spencer
de6ce43320
Support/PathV2: Split PathV2.h into PathV2.h and FileSystem.h.
...
llvm-svn: 120592
2010-12-01 19:31:48 +00:00
Michael J. Spencer
9c14dea286
Support/PathV2: Remove is_valid. It was only added because Path had it, but
...
apparently it is unused.
llvm-svn: 120540
2010-12-01 02:48:43 +00:00
Dan Gohman
3ff3bc0c31
Delete Path::appendSuffix's return value; it wasn't used anywhere, which
...
is fine since isn't really necessary to check isValid there anyway.
llvm-svn: 120538
2010-12-01 02:46:41 +00:00
Michael J. Spencer
5ac386d311
Support/PathV2: Add remove_filename implementation.
...
llvm-svn: 120513
2010-12-01 00:52:28 +00:00
Michael J. Spencer
a10e76dd58
Support/PathV2: Implement reverse iteration and parent_path.
...
llvm-svn: 120496
2010-11-30 23:28:07 +00:00
Michael J. Spencer
b3027299d1
Support/PathV2: Update comments.
...
llvm-svn: 120348
2010-11-29 23:35:35 +00:00
Michael J. Spencer
8ac563a538
Support: Add PathV2 implementation.
...
llvm-svn: 120329
2010-11-29 22:28:51 +00:00
Michael J. Spencer
a16d1d5f35
system_error: Remove Windows headers.
...
llvm-svn: 120328
2010-11-29 22:28:32 +00:00
Michael J. Spencer
edeb53dc0a
Support/PathV2: Just about every function call requires the Twine header.
...
llvm-svn: 120327
2010-11-29 22:28:22 +00:00
Charles Davis
e7f14dfdb8
Now to chant the magical incantation that will exorcise the System library
...
from LLVM forever:
grep -lR "llvm/System" * | grep -v .svn | xargs sed -ie 's#llvm/System#llvm/Support#g'
llvm-svn: 120314
2010-11-29 19:44:50 +00:00
Michael J. Spencer
4a63404543
I swear I did a make clean and make before committing all this...
...
llvm-svn: 120304
2010-11-29 18:47:54 +00:00
Michael J. Spencer
d5ec932c3a
Merge System into Support.
...
llvm-svn: 120298
2010-11-29 18:16:10 +00:00
Daniel Dunbar
56381d8cc7
raw_ostream::write_escaped: Add a UseHexEscapes argument.
...
llvm-svn: 120200
2010-11-27 07:59:50 +00:00
Michael J. Spencer
0d9fb7f72e
Fix spelling!
...
llvm-svn: 120167
2010-11-26 04:16:20 +00:00
Chris Lattner
80a065b474
add a MemoryBuffer::getOpenFile method, which turns an open
...
file descriptor into a MemoryBuffer (and closes the FD).
llvm-svn: 120065
2010-11-23 22:20:27 +00:00
Jason W Kim
b1725a8110
Move the ARM reloc constants to Support/ELF.h
...
llvm-svn: 120035
2010-11-23 19:40:36 +00:00
Chris Lattner
a830fc6a45
Revert functionality doug added in r98575 that was never
...
documented and only used by some clang stuff I just removed.
llvm-svn: 120002
2010-11-23 06:09:51 +00:00
Chris Lattner
e6d7915f62
reimplement SwapByteOrder.h in terms of overloading instead of
...
being in terms of excessively complex template logic.
llvm-svn: 119992
2010-11-23 04:04:25 +00:00
Wesley Peck
e25f241e37
Implement ELF object file writing support for the MBlaze backend. Its not perfect yet, but it works for many tests.
...
llvm-svn: 119952
2010-11-21 22:06:28 +00:00
Chris Lattner
ba1cc33676
Implement PR8644: forwarding a memcpy value to a byval,
...
allowing the memcpy to be eliminated.
Unfortunately, the requirements on byval's without explicit
alignment are really weak and impossible to predict in the
mid-level optimizer, so this doesn't kick in much with current
frontends. The fix is to change clang to set alignment on all
byval arguments.
llvm-svn: 119916
2010-11-21 00:28:59 +00:00
Chris Lattner
de283efb5d
patch from Frits van Bommel:
...
The attached patch fixes IRBuilder and the NoFolder class so that when
NoFolder is used the instructions it generates are treated just like
the ones IRBuilder creates directly (insert into block, assign them a
name and debug info, as applicable).
It does this by
1) having NoFolder return Instruction*s instead of Value*s,
2) having IRBuilder call Insert(Value, Name) on values obtained from
the folder like it does on instructions it creates directly, and
3) adding an Insert(Constant*, const Twine& = "") overload which just
returns the constant so that the other folders shouldn't have any
extra overhead as long as inlining is enabled.
While I was there, I also added some missing (CreateFNeg and various
Create*Cast) methods to NoFolder.
llvm-svn: 119614
2010-11-18 02:15:42 +00:00
Dan Gohman
a585073323
Fix ScalarEvolution's range memoization to avoid using a
...
default ctor with ConstantRange.
llvm-svn: 119550
2010-11-17 20:23:08 +00:00
Duncan Sands
2bd7e7c274
Move some those Xor simplifications which don't require creating new
...
instructions out of InstCombine and into InstructionSimplify. While
there, introduce an m_AllOnes pattern to simplify matching with integers
and vectors with all bits equal to one.
llvm-svn: 119536
2010-11-17 18:52:15 +00:00
Chris Lattner
99b8654169
now that AsmPrinter::EmitInlineAsm is factored right, we can eliminate the
...
cookie argument to the SourceMgr diagnostic stuff. This cleanly separates
LLVMContext's inlineasm handler from the sourcemgr error handling
definition, increasing type safety and cleaning things up.
llvm-svn: 119486
2010-11-17 08:13:01 +00:00
Dan Gohman
b10ff802a0
Memoize results from ScalarEvolution's getUnsignedRange and getSignedRange.
...
This fixes some extreme compile times on unrolled sha512 code.
llvm-svn: 119455
2010-11-17 02:44:44 +00:00
Daniel Dunbar
1f695efa5e
report_fatal_error: Simplify a possible ambiguity.
...
llvm-svn: 118972
2010-11-13 02:48:51 +00:00
Rafael Espindola
8555d32c9e
Initial comdat implementation.
...
llvm-svn: 118805
2010-11-11 18:13:52 +00:00
Duncan Sands
7f44d33a4c
There is no EndPtr anymore - reinterpret the original comment in terms
...
of InputData.
llvm-svn: 118677
2010-11-10 07:46:36 +00:00
Jim Grosbach
380e284cf8
Add v5 and v7 ARM CPU subtype values.
...
llvm-svn: 118281
2010-11-05 17:48:05 +00:00
Daniel Dunbar
8f3d8495f5
CrashRecoveryContext: Add RunSafelyOnThread helper function.
...
llvm-svn: 118272
2010-11-05 07:19:09 +00:00
Mikhail Glushenkov
991857f132
Rename FindExecutable to PrependMainExecutablePath.
...
Makes it more clear that it is just a path manipulation function.
llvm-svn: 118174
2010-11-03 16:14:16 +00:00
Dan Gohman
67f95d770b
Factor code out of APInt to form a isUIntN helper function.
...
llvm-svn: 118133
2010-11-03 00:38:40 +00:00
Mikhail Glushenkov
4077e2da6f
FindExecutable: remove the executability check.
...
This makes the behaviour of FindExecutable more consistent across platforms, but
I'm not very happy with the name...
llvm-svn: 118049
2010-11-02 20:32:46 +00:00
Rafael Espindola
660b7f5c4a
Add support for files with more than 65280 sections. No testcase since
...
it would be a bit too big :-)
llvm-svn: 117849
2010-10-31 00:16:26 +00:00
Chris Lattner
ee8dea6453
Rename alignof -> alignOf to avoid irritating C++'0x compilers,
...
PR8423, patch by nobled.
llvm-svn: 117774
2010-10-30 05:14:01 +00:00
Rafael Espindola
68ec803155
Add support for R_386_TLS_GD, R_386_TLS_LE_32, R_386_TLS_IE and R_386_TLS_LE.
...
llvm-svn: 117494
2010-10-27 21:23:52 +00:00
Mikhail Glushenkov
64c0814208
It is confusing to call a random-access iterator 'InputIterator'.
...
llvm-svn: 117441
2010-10-27 07:39:54 +00:00
Mikhail Glushenkov
a52646c12e
Trailing whitespace.
...
llvm-svn: 117440
2010-10-27 07:39:48 +00:00
Rafael Espindola
5748458e7d
Add support for emitting ARM file attributes.
...
llvm-svn: 117275
2010-10-25 17:50:35 +00:00
Duncan Sands
cfdc3382c9
Remove deprecated macro names. Hopefully this will unbreak the
...
smooshlab build. The breakage seems to be due to a collision
between LLVM's ATTRIBUTE_UNUSED and gcc's which was previously
hidden due to header files being included in a lucky order.
llvm-svn: 117260
2010-10-25 12:47:22 +00:00
Chandler Carruth
7dd652736f
Move the remaining attribute macros to systematic names based on the attribute
...
name and prefixed with 'LLVM_'.
llvm-svn: 117203
2010-10-23 08:40:19 +00:00
Chandler Carruth
7799a873bb
Switch attribute macros to use 'LLVM_' as a prefix. We retain the old names
...
until other LLVM projects using these are cleaned up.
llvm-svn: 117200
2010-10-23 08:10:43 +00:00
Michael J. Spencer
81bb7d4ad7
I hate line endings.
...
llvm-svn: 117132
2010-10-22 19:14:39 +00:00
Michael J. Spencer
8daaefa006
Endian: Get rid of LLVM_IS_HOST_BIG_ENDIAN.
...
llvm-svn: 117124
2010-10-22 18:45:12 +00:00
Michael J. Spencer
93269f7395
Rename LLVM_IS_TARGET_BIG_ENDIAN to LLVM_IS_HOST_BIG_ENDIAN to reflect what it actually means.
...
llvm-svn: 117092
2010-10-22 08:47:28 +00:00
Michael J. Spencer
b9734a5b12
Support: Add Endian.h
...
llvm-svn: 117057
2010-10-21 20:28:21 +00:00
Wesley Peck
00cc1b6983
Adding the EM_MBLAZE value to the machine architectures enumeration to
...
support future ELF file generation by the MBlaze backend.
llvm-svn: 116985
2010-10-21 02:52:59 +00:00
Chandler Carruth
7763c845be
Add a comment about ATTRIBUTE_UNUSED to avoid further confusion over when to
...
use it.
llvm-svn: 116920
2010-10-20 08:44:27 +00:00
Dan Gohman
df5c887e86
Add TypeBasedAliasAnalysis to the standard pass lists. Note that it
...
is currently inert by default.
llvm-svn: 116732
2010-10-18 18:50:27 +00:00
Dan Gohman
6aff5b94ff
Make BasicAliasAnalysis a normal AliasAnalysis implementation which
...
does normal initialization and normal chaining. Change the default
AliasAnalysis implementation to NoAlias.
Update StandardCompileOpts.h and friends to explicitly request
BasicAliasAnalysis.
Update tests to explicitly request -basicaa.
llvm-svn: 116720
2010-10-18 18:04:47 +00:00
Michael J. Spencer
f9a7c39ecc
MC-COFF: Add support for default-null weak externals.
...
llvm-svn: 116666
2010-10-16 08:25:57 +00:00
Francois Pichet
ad0548d742
Always use binary mode for output stream. This is important to prevent unwanted end of line conversion on Windows. Should not affect Unix where O_BINARY is not defined. This fix /clang/test/lexer/preamble.c XFAIL on WIN32.
...
llvm-svn: 116509
2010-10-14 20:30:58 +00:00
Michael J. Spencer
0888ccaa19
System: Add SwapByteOrder and update Support/MathExtras.h to use it.
...
This time correctly.
llvm-svn: 116247
2010-10-11 21:56:16 +00:00
Michael J. Spencer
0af3659b5d
Revert "System: Add SwapByteOrder and update Support/MathExtras.h to use it."
...
This reverts commit 116234.
It compiled just fine with MSVC and clang...
llvm-svn: 116242
2010-10-11 21:39:24 +00:00
Michael J. Spencer
d0d6c9b01e
System: Add SwapByteOrder and update Support/MathExtras.h to use it.
...
llvm-svn: 116234
2010-10-11 21:22:22 +00:00
Michael J. Spencer
bdf3b8770f
MC-COFF: Fix Simple and Complex type. Fixes PR8320.
...
llvm-svn: 116037
2010-10-08 03:17:11 +00:00
Michael J. Spencer
fc3f9d7c92
Fix Whitespace.
...
llvm-svn: 116036
2010-10-08 03:16:56 +00:00
Dan Gohman
6645ce3f75
Move tool_output_file into its own file.
...
llvm-svn: 115973
2010-10-07 20:32:40 +00:00
Michael J. Spencer
2d26a21128
Support: Add __forceinline to Compiler.h on MSVC.
...
llvm-svn: 115595
2010-10-05 06:00:52 +00:00
Duncan Sands
39e0233734
Remove two uses of the gcc specific 'aligned' attribute. This
...
is partly because this attribute caused trouble in the past (the
SmallVector one had to be changed from aligned to aligned(8) due
to causing crashes on i386 for example; in theory the same might
be needed in the Allocator case...). But it's mostly because
there seems to be no point in special casing gcc here. Using the
same implementation for all compilers results in better testing.
llvm-svn: 115462
2010-10-03 15:15:19 +00:00
Kevin Enderby
f3d8ed8368
Did my commit for the last patch for the .loc directory from the wrong place and
...
missed a bunch of files. Here the rest. Sorry about that.
llvm-svn: 115173
2010-09-30 17:16:09 +00:00
Owen Anderson
aafc02daa9
Revert r115099 (adding early jump threading). It's not clear if the benefits are worth the compile time cost.
...
llvm-svn: 115106
2010-09-29 23:31:09 +00:00
Owen Anderson
2511059a16
Early CFG simplification can fold conditionals down to selects, which is often a good thing, but it can also
...
hide jump threading opportunities by turning control flow into data flow. Run an early JumpThreading pass
(adds approximately an additional 1% to optimization time on SPEC), allowing it to get a shot at these cases
first. Fixes <rdar://problem/8447345>.
llvm-svn: 115099
2010-09-29 22:57:02 +00:00
Devang Patel
bbd003ab48
Generalize DISubprogram element to encode various flags instead of just one boolean for isArtificial.
...
This is a backword compatible change.
llvm-svn: 115084
2010-09-29 21:04:46 +00:00
Benjamin Kramer
cd6c025b08
Push twines deeper into SourceMgr's error handling methods.
...
llvm-svn: 114847
2010-09-27 17:42:11 +00:00
Dan Gohman
8443b40d5f
writeGraph doesn't need its ShortNames argument.
...
llvm-svn: 114842
2010-09-27 16:59:51 +00:00
Dan Gohman
830a560eef
Don't construct a redundant GraphWriter object.
...
llvm-svn: 114838
2010-09-27 16:54:13 +00:00
Dan Gohman
96a88043ca
Factor out code from the standalone WriteGraph function into a helper
...
function on GraphWriter.
llvm-svn: 114837
2010-09-27 16:44:11 +00:00
Dan Gohman
e024d78aab
Remove WriteGraph's Name argument, which it didn't use, and
...
rename writeHeader's Name argument to Title, to be consistent
with WriteGraph.
llvm-svn: 114829
2010-09-27 15:34:19 +00:00
Dan Gohman
31cdf8db52
Fix indentation.
...
llvm-svn: 114827
2010-09-27 14:44:14 +00:00
Gabor Greif
25989ff0b4
restrict dyn_cast_or_null to pointer types, just like cast_or_null; re-commit of r114279, backed out in r114280
...
llvm-svn: 114282
2010-09-18 13:03:32 +00:00
Gabor Greif
01fd81d9e0
back out r114279 as some darwin buildbots get errors compiling clang:
...
svn merge -c -114279 llvm/include/llvm/Support/Casting.h
llvm-svn: 114280
2010-09-18 12:56:47 +00:00