Owen Anderson
2928dbea72
Apparently MSVC doesn't support thread-safe static local initialization. Roll our own solution instead.
...
llvm-svn: 116489
2010-10-14 17:26:06 +00:00
Chris Lattner
451a0accb5
add uadd_ov/usub_ov to apint, consolidate constant folding
...
logic to use the new APInt methods. Among other things this
implements rdar://8501501 - llvm.smul.with.overflow.i32 should constant fold
which comes from "clang -ftrapv", originally brought to my attention from PR8221.
llvm-svn: 116457
2010-10-14 00:05:07 +00:00
Chris Lattner
365326538a
missed a line :(
...
llvm-svn: 116456
2010-10-13 23:57:00 +00:00
Chris Lattner
093d5fe0a9
constify these methods.
...
llvm-svn: 116455
2010-10-13 23:54:10 +00:00
Chris Lattner
70a78ab2c5
add a few operations for signed operations that also
...
return an overflow flag.
llvm-svn: 116452
2010-10-13 23:46:33 +00:00
Owen Anderson
2ea9b016d8
Conversely, Analysis-implementations do NOT need to initialize the AnalysisGroup. It will only matter when
...
someone tries to require that AG, in which case it is the requester's responsibility to initialize it.
llvm-svn: 116442
2010-10-13 21:55:07 +00:00
Owen Anderson
c65395a991
Analysis groups need to initialize their default implementations.
...
llvm-svn: 116441
2010-10-13 21:49:58 +00:00
Owen Anderson
63b480c711
Take advantage of C++'s thread-safe static local initialization to simplify thread-safe pass initialization.
...
llvm-svn: 116426
2010-10-13 20:24:34 +00:00
Benjamin Kramer
3d87b36b64
Remove noisy semicolon.
...
llvm-svn: 116407
2010-10-13 15:55:12 +00:00
Tobias Grosser
70507511ae
Add Region::isTopLevelRegion().
...
llvm-svn: 116402
2010-10-13 11:02:44 +00:00
Tobias Grosser
85dce73ab5
RegionInfo: Update RegionInfo after a BB was split.
...
llvm-svn: 116398
2010-10-13 05:54:13 +00:00
Tobias Grosser
6aac855519
RegioInfo: Add getExpandedRegion().
...
getExpandedRegion() enables us to create non canonical regions. Those regions
can be used to define the largerst region, that fullfills a certain property.
llvm-svn: 116397
2010-10-13 05:54:11 +00:00
Tobias Grosser
ecfaf92c1a
RegionInfo: Allow to update exit and entry of a region.
...
llvm-svn: 116396
2010-10-13 05:54:10 +00:00
Tobias Grosser
84dd4b54fc
RegionInfo: Enhance addSubregion.
...
llvm-svn: 116395
2010-10-13 05:54:09 +00:00
Tobias Grosser
a2b5df5a6d
RegionInfo: Allow to set the parent region of a basic block.
...
llvm-svn: 116394
2010-10-13 05:54:07 +00:00
Rafael Espindola
16d5617ec3
Fix PR8313 by changing ValueToValueMap use a TrackingVH.
...
llvm-svn: 116390
2010-10-13 02:08:17 +00:00
Rafael Espindola
aa5448f520
Be more consistent in using ValueToValueMapTy.
...
llvm-svn: 116387
2010-10-13 01:36:30 +00:00
Owen Anderson
63f757463c
Begin adding static dependence information to passes, which will allow us to
...
perform initialization without static constructors AND without explicit initialization
by the client. For the moment, passes are required to initialize both their
(potential) dependencies and any passes they preserve. I hope to be able to relax
the latter requirement in the future.
llvm-svn: 116334
2010-10-12 19:48:12 +00:00
Jim Grosbach
d18b416075
Comment grammar tweakage.
...
llvm-svn: 116322
2010-10-12 18:11:41 +00:00
Dan Gohman
d904add908
Initial va_arg support for x86-64. Patch by David Meyer!
...
llvm-svn: 116319
2010-10-12 18:00:49 +00:00
Dan Gohman
c49d367fb9
Constify.
...
llvm-svn: 116277
2010-10-12 00:12:29 +00:00
Dan Gohman
dbb5a62aba
Use SmallVectorImpl in a bunch of places.
...
llvm-svn: 116276
2010-10-12 00:11:18 +00:00
Jason W Kim
59375bae75
Second set of ARM/MC/ELF changes.
...
Added ARM specific ELF section types.
Added AttributesSection to ARMElfTargetObject
First step in unifying .cpu assembly tag with ELF/.o
llc now asserts on actual ELF emission on -filetype=obj :-)
llvm-svn: 116257
2010-10-11 23:01:44 +00:00
Dan Gohman
68f316a93c
Clang's #include handling apparently doesn't work for libstdc++'s
...
fenv.h. See PR6907 for details. Work around this in FEnv.h to fix
the seflhost build.
llvm-svn: 116256
2010-10-11 22:30:59 +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
Chris Lattner
f97743c49d
tweak comment.
...
llvm-svn: 116192
2010-10-11 05:48:00 +00:00
Chris Lattner
c9709f154d
Per discussion with Sanjiv, remove the PIC16 target from mainline. When/if
...
it comes back, it will be largely a rewrite, so keeping the old codebase
in tree isn't helping anyone.
llvm-svn: 116190
2010-10-11 05:44:40 +00:00
Kenneth Uildriks
e9771f15f7
Now using a variant of the existing inlining heuristics to decide whether to create a given specialization of a function in PartialSpecialization. If the total performance bonus across all callsites passing the same constant exceeds the specialization cost, we create the specialization.
...
llvm-svn: 116158
2010-10-09 22:06:36 +00:00
Jim Grosbach
b328f0ab04
Allow << streaming of MCOperand.
...
llvm-svn: 116107
2010-10-08 21:36:13 +00:00
Kenneth Uildriks
0545afa8fd
Start separating out code metrics into code size metrics and code performance metrics. Partial Specialization will apply the former to function specializations, and the latter to all callsites that can use a specialization, in order to decide whether to create a specialization
...
llvm-svn: 116057
2010-10-08 13:57:31 +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
Jakob Stoklund Olesen
1d81101e97
After splitting, the remaining LiveInterval may be fragmented into multiple
...
connected components. These components should be allocated different virtual
registers because there is no reason for them to be allocated together.
Add the ConnectedVNInfoEqClasses class to calculate the connected components,
and move values to new LiveIntervals.
Use it from SplitKit::rewrite by creating new virtual registers for the
components.
llvm-svn: 116006
2010-10-07 23:34:34 +00:00
Devang Patel
35201e0fd6
Remove LoopIndexSplit pass. It is neither maintained nor used by anyone.
...
llvm-svn: 116004
2010-10-07 23:29:37 +00:00
Owen Anderson
69cbf2e8b7
Now with fewer extraneous semicolons!
...
llvm-svn: 115996
2010-10-07 22:25:06 +00:00
Devang Patel
ee23e6ea23
Provie a clearner interface so that FE can decide whether a function has prototype or not.
...
llvm-svn: 115988
2010-10-07 22:03:01 +00:00
Jim Grosbach
ea4028ac17
Add output stream operator for MCInst.
...
llvm-svn: 115974
2010-10-07 20:38:37 +00:00
Dan Gohman
6645ce3f75
Move tool_output_file into its own file.
...
llvm-svn: 115973
2010-10-07 20:32:40 +00:00
Owen Anderson
d07798cef0
Add initialization routines for Instrumentation.
...
llvm-svn: 115971
2010-10-07 20:17:24 +00:00
Owen Anderson
8adf6f2759
Add initialization routines to InstCombine.
...
llvm-svn: 115965
2010-10-07 20:04:55 +00:00
Owen Anderson
c49384836e
Add initialization routines for VMCore.
...
llvm-svn: 115963
2010-10-07 19:51:21 +00:00
Owen Anderson
26a89851fe
Add initialization routines for Target.
...
llvm-svn: 115957
2010-10-07 18:50:11 +00:00
Owen Anderson
2dd4609c9e
Add initialization routines for CodeGen.
...
llvm-svn: 115949
2010-10-07 18:41:20 +00:00
Owen Anderson
704998fa6f
Add initialization routines for Analysis and IPA.
...
llvm-svn: 115946
2010-10-07 18:31:00 +00:00
Owen Anderson
ec9ec036a4
Add an initialization routine for libLLVMipo.a
...
llvm-svn: 115933
2010-10-07 18:09:59 +00:00
Owen Anderson
4a9acfa34a
Next step on the getting-rid-of-static-ctors train: begin adding per-library
...
initialization functions that initialize the set of passes implemented in
that library. Add C bindings for these functions as well.
llvm-svn: 115927
2010-10-07 17:55:47 +00:00
Owen Anderson
88fd2662d2
Add the header that I accidentally forgot from r115900.
...
llvm-svn: 115901
2010-10-07 04:17:38 +00:00
Owen Anderson
a8a7bf484f
Move the pass initialization helper functions into the llvm namespace, and add
...
a header declaring them all. This is also where we will declare per-library pass-set
initializer functions down the road.
llvm-svn: 115900
2010-10-07 04:13:08 +00:00