Home
last modified time | relevance | path

Searched full:we (Results 1 – 25 of 8769) sorted by relevance

12345678910>>...351

/openbsd-src/gnu/llvm/llvm/docs/HistoricalNotes/
H A D2003-06-25-Reoptimizer1.txt6 We use opt to do Bytecode-to-bytecode instrumentation. Look at
14 exceeds a threshold, we identify a hot loop and perform second-level
16 target of the back-edge and the branch that causes the back-edge). We
23 We remove the first-level instrumentation by overwriting the CALL to
27 LLVM BasicBlock*s. We only keep track of paths that start at the
30 How do we keep track of which edges to instrument, and which edges are
41 3) Mark BBs which end in edges that exit the hot region; we need to
44 Assume that there is 1 free register. On SPARC we use %g1, which LLC
46 edge which corresponds to a conditional branch, we shift 0 for not
48 through the hot region. Silently fail if we need more than 64 bits.
[all …]
/openbsd-src/gnu/llvm/llvm/docs/tutorial/MyFirstLanguageFrontend/
H A DLangImpl09.rst12 LLVM <index.html>`_" tutorial. In chapters 1 through 8, we've built a
19 source that the programmer wrote. In LLVM we generally use a format
23 The short summary of this chapter is that we'll go through the
27 Caveat: For now we can't debug via the JIT, so we'll need to compile
29 we'll make a few modifications to the running of the language and
30 how programs are compiled. This means that we'll have a source file
32 interactive JIT. It does involve a limitation that we can only
36 Here's the sample program we'll be compiling:
54 locations more difficult. In LLVM IR we keep the original source location
61 tutorial we're going to avoid optimization (as you'll see with one of the
[all …]
H A DLangImpl04.rst60 Well, that was easy :). In practice, we recommend always using
84 We'd really like to see this generate "``tmp = x+3; result = tmp*tmp;``"
121 For Kaleidoscope, we are currently generating functions on the fly, one
122 at a time, as the user types them in. We aren't shooting for the
123 ultimate optimization experience in this setting, but we also want to
124 catch the easy and quick stuff where possible. As such, we will choose
126 in. If we wanted to make a "static Kaleidoscope compiler", we would use
127 exactly the code we have now, except that we would defer running the
130 In order to get per-function optimizations going, we need to set up a
132 and organize the LLVM optimizations that we want to run. Once we have
[all …]
H A DLangImpl08.rst20 other architectures. In this tutorial, we'll target the current
23 To specify the architecture that you want to target, we use a string
28 As an example, we can see what clang thinks is our current target
39 Fortunately, we don't need to hard-code a target triple to target the
48 functionality. For example, if we're just using the JIT, we don't need
49 the assembly printers. Similarly, if we're only targeting certain
50 architectures, we can only link in the functionality for those
53 For this example, we'll initialize all the targets for emitting object
64 We can now use our target triple to get a ``Target``:
71 // Print an error and exit if we couldn't find the requested target.
[all …]
H A DLangImpl05.rst18 of "build that compiler", we'll extend Kaleidoscope to have an
30 Before we get going on "how" we add this extension, let's talk about
31 "what" we want. The basic idea is that we want to be able to write this
44 like any other. Since we're using a mostly functional form, we'll have
57 Now that we know what we "want", let's break this down into its
63 The lexer extensions are straightforward. First we add new enum values
73 Once we have that, we recognize the new keywords in the lexer. This is
94 To represent the new expression we add a new AST node for it:
115 Now that we have the relevant tokens coming from the lexer and we have
117 First we define a new parsing function:
[all …]
/openbsd-src/gnu/llvm/llvm/lib/Target/WebAssembly/
H A DWebAssemblyExceptionInfo.cpp87 auto WE = std::make_unique<WebAssemblyException>(EHPad); in recalculate() local
88 discoverAndMapException(WE.get(), MDT, MDF); in recalculate()
89 Exceptions.push_back(std::move(WE)); in recalculate()
108 // We group exceptions in this analysis simply by including all BBs dominated in recalculate()
114 // Here we extract those unwind destinations from their (incorrect) parent in recalculate()
116 // children of the parent exception, so we have to traverse the parent chain. in recalculate()
118 // We should traverse BBs in the preorder of the dominator tree, because in recalculate()
121 // and A's unwind destination is B and B's is C. When we visit B before A, we in recalculate()
153 // subexception of Exception A, and we fix it by taking Exception B out of in recalculate()
158 // A because they were dominated by EHPad A. We fix this case by taking those in recalculate()
[all …]
H A DWebAssemblySortRegion.cpp19 const auto *WE = WEI.getExceptionFor(MBB); in getRegionFor() local
20 if (!ML && !WE) in getRegionFor()
22 // We determine subregion relationship by domination of their headers, i.e., in getRegionFor()
27 // dominated by its header. So here we should use in getRegionFor()
28 // WE->contains(ML->getHeader()), but not ML->contains(WE->getHeader()). in getRegionFor()
29 if ((ML && !WE) || (ML && WE && WE->contains(ML->getHeader()))) { in getRegionFor()
37 if (ExceptionMap.count(WE)) in getRegionFor()
38 return ExceptionMap[WE].get(); in getRegionFor()
39 ExceptionMap[WE] = in getRegionFor()
40 std::make_unique<ConcreteSortRegion<WebAssemblyException>>(WE); in getRegionFor()
[all …]
/openbsd-src/gnu/llvm/llvm/docs/
H A DMergeFunctions.rst20 explains how we could combine equal functions correctly to keep the module
38 LLVM code fundamentals. In this article, we assume the reader is familiar with
44 We will use terms such as
85 Do we need to merge functions? The obvious answer is: Yes, that is quite a
86 possible case. We usually *do* have duplicates and it would be good to get rid
87 of them. But how do we detect duplicates? This is the idea: we split functions
89 we compare the "bricks" themselves, and then do our conclusions about functions
93 (let's assume we have only one address space), one function stores a 64-bit
95 mentioned above, and if functions are identical, except the parameter type (we
96 could consider it as a part of function type), then we can treat a ``uint64_t``
[all …]
/openbsd-src/gnu/usr.bin/perl/pod/
H A Dperlhacktut.pod35 How do we prepare to fix this up? First we locate the code in question
37 F<pp> files. Sure enough, C<pp_pack> is in F<pp.c>. Since we're going
43 Now let's look over C<pp_pack>: we take a pattern into C<pat>, and then
45 C<datum_type>. Then for each possible format character, we swallow up
50 How do we know if the C<U> is the first format in the C<pat>? Well, if
51 we have a pointer to the start of C<pat> then, if we see a C<U> we can
52 test whether we're still at the start of the string. So, here's where
62 We'll have another string pointer in there:
72 And just before we start the loop, we'll set C<patcopy> to be the start
81 Now if we see a C<U> which was at the start of the string, we turn on
[all …]
H A Dperl5121delta.pod34 We fixed exporting of C<is_strict> and C<is_lax> from L<version>.
49 We upgraded L<CGI> to version 3.49 to incorporate fixes for regressions
50 introduced in the release we shipped with Perl 5.12.0.
54 We upgraded L<Pod::Simple> to version 3.14 to get an improvement to \C\<\< \>\>
59 We made a small fix to the L<CPANPLUS> test suite to fix an occasional spurious test failure.
63 We upgraded L<Safe> to version 2.27 to wrap coderefs returned by C<reval()> and C<rdo()>.
73 We added the new maintenance release policy to L<perlpolicy>
77 We've clarified the multiple-angle-bracket construct in the spec for POD
82 We added a missing explanation for a warning about C<:=> to L<perldiag>
86 We removed a false claim in L<perlunitut> that all text strings are Unicode strings in Perl.
[all …]
/openbsd-src/bin/pax/
H A Dbuf_subs.c87 * does not specify a blocksize, we use the format default blocksize. in wr_start()
88 * We must be picky on writes, so we do not allow the user to create an in wr_start()
89 * archive that might be hard to read elsewhere. If all ok, we then in wr_start()
111 * we only allow wrblksz to be used with all archive operations in wr_start()
133 * leave space for the header pushback (see get_arc()). If we are in rd_start()
184 * position of the tape head) and the write point within the data we have
185 * stored in the read (soon to become write) buffer. We may have to move
190 * We first calculate which record has the first byte of the trailer. We
192 * up. We set the buffer write pointer to be at this byte (the byte where
193 * the trailer starts). We then move the OS file pointer back to the
[all …]
H A Dar_io.c74 static int can_unlnk = 0; /* do we unlink null archives? */
78 int force_one_volume; /* 1 if we ignore volume changes */
88 * Note: we may be called with name == NULL on the first open only.
183 * make sure beyond any doubt that we can unlink only regular files in ar_open()
184 * we created in ar_open()
189 * if we are writing, we are done in ar_open()
199 * On all new archive volumes, we shift to wrblksz (if the user in ar_open()
200 * specified one, otherwise we will continue to use rdblksz). We in ar_open()
210 * that support variable sized records, we must make large in ar_open()
211 * reads to make sure we get the entire record, otherwise we in ar_open()
[all …]
/openbsd-src/gnu/usr.bin/perl/cpan/Test-Simple/t/Legacy/subtest/
H A Dbasic.t26 # Formatting may change if we're running under Test::Harness.
34 $tb->$ok( $_, "We're on $_" );
35 $tb->$diag("We ran $_");
40 $indented->$ok( 1, "We're on 1" );
41 $indented->$ok( 1, "We're on 2" );
42 $indented->$ok( 1, "We're on 3" );
46 $tb->$ok( $_, "We're on $_" );
51 ok 1 - We're on 1
52 # We ran 1
53 ok 2 - We're on 2
[all …]
/openbsd-src/sys/uvm/
H A Duvm_vnode.c67 * we keep a list of writeable active vnode-backed VM objects for sync op.
68 * we keep a simpleq of vnodes that are currently being sync'd.
131 * => in fact, nothing should be locked so that we can sleep here.
144 /* if we're mapping a BLK device, make sure it is a disk. */ in uvn_attach()
160 * we can bump the reference count, check to see if we need to in uvn_attach()
165 /* regain vref if we were persisting */ in uvn_attach()
185 * block (due to I/O), so we want to unlock the object before calling. in uvn_attach()
186 * however, we want to keep anyone else from playing with the object in uvn_attach()
187 * while it is unlocked. to do this we se in uvn_attach()
[all...]
/openbsd-src/gnu/usr.bin/binutils/gdb/testsuite/gdb.base/
H A Dwatchpoint.c4 * Since using watchpoints can be very slow, we have to take some pains to
5 * ensure that we don't run too long with them enabled or we run the risk
6 * of having the test timeout. To help avoid this, we insert some marker
7 * functions in the execution stream so we can set breakpoints at known
9 * this file. We use null bodied functions are markers since gdb does
12 * One place we need is a marker for when we start executing our tests
13 * instructions rather than any process startup code, so we insert one
14 * right after entering main(). Another is right before we finish, before
15 * we start executing any process termination code.
17 * Another problem we have to guard against, at least for the test
[all …]
/openbsd-src/gnu/llvm/clang/docs/analyzer/developer-docs/
H A DInitializerLists.rst14 I've seen a few false positives that appear because we construct
34 Ideally, we should be able to model the initializer list's methods precisely.
41 which would be of type ``T*`` and represent ``begin()``, so we'd trivially model ``begin()``
53 Approach (1): If only we enabled ``ProgramState::bindLoc(..., notifyChanges=true)``
57 conservative as the current patch's solution. Ideally, we do not want escapes to
58 happen so early. Instead, we'd prefer them to be delayed until the list itself
62 would be the right thing to do. Currently we didn't think about that because we
65 Approach (2): We could teach the Store to scan itself for bindings to
70 Approach (3): We could let checkers maintain the set of active metadata symbols
76 Approach (4): We could allow checkers to trigger pointer escapes in arbitrary
[all …]
/openbsd-src/gnu/llvm/llvm/lib/Target/X86/
H A DX86SpeculativeLoadHardening.cpp143 // We mostly have one conditional branch, and in extremely rare cases have
235 // We have to insert the new block immediately after the current one as we in splitEdge()
236 // don't know what layout-successor relationships the successor has and we in splitEdge()
247 // we might have *broken* fallthrough and so need to inject a new in splitEdge()
257 // Update the unconditional branch now that we've added one. in splitEdge()
275 // If this is the only edge to the successor, we can just replace it in the in splitEdge()
276 // CFG. Otherwise we need to add a new entry in the CFG for the new in splitEdge()
324 /// FIXME: It's really frustrating that we have to do this, but SSA-form in MIR
325 /// isn't what you might expect. We may have multiple entries in PHI nodes for
326 /// a single predecessor. This makes CFG-updating extremely complex, so here we
[all …]
/openbsd-src/gnu/usr.bin/gcc/gcc/
H A Dtree-inline.c49 /* 0 if we should not perform inlining.
50 1 if we should expand functions calls inline at the tree level.
51 2 if we should consider *all* functions to be inline
58 o In order to make inlining-on-trees work, we pessimized
72 /* A stack of the functions we are inlining. For example, if we are
73 compiling `f', which calls `g', which calls `h', and we are
76 contain other functions that we know we should not recurse into,
89 /* Nonzero if we are currently within the cleanup for a
92 /* A stack of the TARGET_EXPRs that we are currently processing. */
96 /* The approximate number of statements we have inlined in the
[all …]
/openbsd-src/lib/libkeynote/
H A Dsample-app.c97 * Sample application. We do the following:
105 * Since this is a sample application, we won't be actually reading any
116 * We are creating a new KeyNote session here. A session may be temporary in main()
117 * (we create it, add policies, credentials, authorizers, action set, do in main()
118 * the query, and then we destroy it), or it may be persistent (if, for in main()
121 * In this example, we'll just assume the session is temporary, but there in main()
132 * Assume we have read a file, or somehow securely acquired our policy in main()
133 * assertions, and we have stored them in policy_assertions. in main()
136 /* Let's find how many policies we just "read". */ in main()
147 * we'll get a valid pointer back, which we need to free. Note that this in main()
[all …]
/openbsd-src/gnu/llvm/lldb/source/Target/
H A DThreadPlanStepOverRange.cpp98 // a step out, so we want to catch this case. in SetupAvoidNoDebug()
114 // It is okay to return to a different block of a straight function, we in IsEquivalentContext()
123 // Fall back to symbol if we have no decision from comp_unit/function/block. in IsEquivalentContext()
138 // If we're out of the range but in the same frame or in our caller's frame in ShouldStop()
139 // then we should stop. When stepping out we only stop others if we are in ShouldStop()
146 // If we're in an older frame then we should stop. in ShouldStop()
148 // A caveat to this is if we think the frame is older but we're actually in in ShouldStop()
151 // trampoline. So if we are in a trampoline we think the frame is older in ShouldStop()
152 // because the trampoline confused the backtracer. As below, we step in ShouldStop()
162 // Make sure we really are in a new frame. Do that by unwinding and seeing in ShouldStop()
[all …]
/openbsd-src/gnu/usr.bin/perl/t/run/
H A Drunenv_hashseed.t7 # We do this by first executing Perl with a given PERL_PERTURB_KEYS
12 # We do not ask perl to output any keys on this run, as our subsequent
14 # PERL_HASH_SEED) which will change any key order results we see.
16 # We then execute perl a further three times and ask perl to build a
17 # hash with a specific number of buckets and a specific set of keys. We
20 # For two of these three runs we supply the same seed, and both of those
21 # times we supply the same perturb mode, but in different ways, once as
28 # The third run we supply a different seed, with a 1 bit difference, but
29 # with the same PERL_PERTURB_KEYS mode. In this case we expect the key
31 # probabilistic and we may get the same key order in a small percentage
[all …]
/openbsd-src/sys/dev/pci/drm/i915/
H A Di915_request.c73 * We could extend the life of a context to beyond that of all in i915_fence_get_timeline_name()
75 * or we just give them a false name. Since in i915_fence_get_timeline_name()
137 * freed when the slab cache itself is freed, and so we would get in i915_fence_release()
146 * We do not hold a reference to the engine here and so have to be in i915_fence_release()
147 * very careful in what rq->engine we poke. The virtual engine is in i915_fence_release()
148 * referenced via the rq->context and we released that ref during in i915_fence_release()
149 * i915_request_retire(), ergo we must not dereference a virtual in i915_fence_release()
150 * engine here. Not that we would want to, as the only consumer of in i915_fence_release()
155 * we know that it will have been processed by the HW and will in i915_fence_release()
161 * power-of-two we assume that rq->engine may still be a virtual in i915_fence_release()
[all …]
/openbsd-src/gnu/llvm/llvm/lib/CodeGen/GlobalISel/
H A DRegBankSelect.cpp100 // We could preserve the information from these two analysis but in getAnalysisUsage()
113 // By default we assume we will have to repair something. in assignmentMatch()
142 assert(!NewVRegs.empty() && "We should not have to repair"); in repairReg()
146 // Assume we are repairing a use and thus, the original reg will be in repairReg()
151 // If we repair a definition, swap the source and destination for in repairReg()
157 "We are about to create several defs for Dst"); in repairReg()
214 // Check if MI is legal. if not, we need to legalize all the in repairReg()
215 // instructions we are going to insert. in repairReg()
238 assert(MO.isReg() && "We should only repair register operand"); in getRepairCost()
243 // If MO does not have a register bank, we should have just been in getRepairCost()
[all …]
/openbsd-src/gnu/gcc/gcc/
H A Dtree-ssa-threadupdate.c80 We further reduce the number of edges and statements we create by
82 step #1. We instead create a template block without the outgoing
91 To realize that implementation we create a list of incoming edges
93 #5 and #6 we traverse our hash table of outgoing edge information.
94 For each entry we walk the list of incoming edges which thread to
106 /* We need to efficiently record the unique thread destinations of this
107 block and specific information associated with those destinations. We
121 /* A list of incoming edges which we want to thread to
125 /* Flag indicating whether or not we should create a duplicate block
126 for this thread destination. This is only true if we are threading
[all …]
/openbsd-src/sys/dev/usb/dwc2/
H A Ddwc2_hcdqueue.c70 /* If we get a NAK, wait this long before retrying */
159 * @num_bits: The number of bits we need per period we want to reserve
161 * @interval: How often we need to be scheduled for the reservation this
165 * the interval or we return failure right away.
166 * @only_one_period: Normally we'll allow picking a start anywhere within the
167 * first interval, since we can still make all repetition
169 * here then we'll return failure if we can't fit within
172 * The idea here is that we want to schedule time for repeating events that all
177 * To keep things "simple", we'll represent our schedule with a bitmap that
179 * but does mean that we need to handle things specially (and non-ideally) if
[all …]

12345678910>>...351